是否有方法可以更改Bash腳本中的命令行參數。舉例來說,Bash腳本的調用方式如下:在Bash中更改命令行參數
./foo arg1 arg2
有沒有辦法在腳本中更改arg1的值?說,像
$1="chintz"
是否有方法可以更改Bash腳本中的命令行參數。舉例來說,Bash腳本的調用方式如下:在Bash中更改命令行參數
./foo arg1 arg2
有沒有辦法在腳本中更改arg1的值?說,像
$1="chintz"
你必須重置所有參數。要改變例如$3
:
$ set -- "${@:1:2}" "new" "${@:4}"
基本上你set所有參數及其當前值,除了要改變一個(或多個)。
的"${@:1:2}"
notation被擴展到兩個(因此2
在符號)的位置參數偏離1
開始(即$1
)。在這種情況下,它是"$1" "$2"
的縮寫,但是當您想要替換例如"${17}"
。
你最好分配$1
和$2
更有意義的變量(我不知道,input_filename = $1
和output_filename = $2
或東西),然後重寫這些變量(input_filename = 'chintz'
)之一,離開輸入腳本不變,萬一它在別處是需要的。
所以,爲了改變$ 3,我必須改變$ 1和$ 2,是嗎?並改變他們到什麼? 「重置」是什麼意思? – Sriram 2011-01-28 11:31:49
當然,要「$ 1」和「$ 2」。 – 2011-01-28 11:33:11