2010-04-15 155 views
39

我有一個Linux bash腳本'myshell'。我希望它讀取兩個日期作爲參數,例如:myshell date1 date2。我是一名Java程序員,但不知道如何編寫腳本來完成此任務。如何將參數傳遞給Linux Bash腳本?

腳本的其餘部分是這樣的:

sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml 
mv tmp.xml wlacd_stat.xml 
+1

事實上,所謂的「shell」被稱爲「腳本」。請注意格式化您的文章(請在文本框右側查看提示),並請大寫字母開頭。 – 2010-04-15 13:37:21

+1

我收到了~~感謝您的提醒 – chun 2010-04-21 09:14:31

回答

57

你在你的腳本如使用$1$2

date1="$1" 
date2="$2" 
sed "s/$date1/$date2/g" wlacd_stat.xml >temp.xml ;mv temp.xml wlacd_stat.xml #Semicolon can also replaced with a newline 
+0

它的工作原理,謝謝 – chun 2010-04-15 13:48:41

+6

@chun,您也可能要等待一段時間才能接受答案,即使它適合您。也許其他人可以提出更好的答案,但他們甚至可能不會看你的問題,因爲已經接受了一些東西。 – 2010-04-15 13:51:08

6

$ 0 $ 1 $ 2

等都將包含腳本名稱,然後是第一和第二行參數。

6

Bash參數以其位置命名。

而且,如果你需要的其他後處理一個說法,你可以移動它們,總是使用$1

while [ $# -gt 0 ] 
do 
    echo $1 
    shift 
done 
8

遍歷參數,你可以使用這個速記:

#!/bin/bash 
for a 
do 
    echo $a 
done 

此表格與for a in "[email protected]"相同。