簡體   English   中英

unix中的shell腳本錯誤

[英]shell script error in unix

在目錄中使用1#做什么?

cpfile = $ {1#/ usr / newconfig} ls -l $ cpfile | 讀var1 echo var1

我正在嘗試理解腳本,但我找不到任何可以幫助我確定此命令含義的資源。

通常,可以使用#修改變量,這會刪除前導字符串。 如果a是一個含有foobar內容的變量,那么${a#foo}刪除foo並計算為bar 在您的情況下,$ 1是位置參數, ${1#/usr/newconfig}是從開頭刪除“/ usr / newconfig”的字符串的值。 如果它不匹配,則表達式求值為與$ 1相同的字符串。

但是,這個腳本有一個相當重要的問題,它在運行的ls的環境中分配cpfile,但是ls不接收它作為參數。 結果, ls將在當前工作目錄上運行,而不是在作為參數傳遞給腳本的目錄上運行。 (除非先前在某個地方的腳本中分配了cpfile 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM