2013-02-02 48 views
0

是否可以使用短路爲shell腳本設置可變默認值?短路以在shell腳本中設置變量默認值

腳本中調用1:my_script.sh "apple" "carrot"

腳本中調用2:my_script.sh "apple"

my_script.sh:

#!/bin/bash 
fruit=$1 
vegetable=$2 || "green bean" 

# Do something with fruits and vegetables 

當我這樣做,它似乎並不像默認不斷得到用過的。

回答

2

您是否指出該腳本應該使用特定的shell?我總是defaul使用 bash像這樣:

#!/bin/bash 

概念 here的尼斯解釋。

編輯:好吧,我現在更好地理解這個問題。如果變量未被傳遞,原始海報想要設置默認值。設置默認變量here的好解釋。試試這個腳本:

#!/bin/bash 

fruit=${1-apple} 
vegetable=${2-green bean} 

echo $fruit; 
echo $vegetable; 
+0

是的,我不明白爲什麼這應該是有的,但我用了它,因爲我看到了它的一個示例腳本我朋友送我。我想我還應該補充一點,我在OSX上的iTerm上運行它,以防影響工作的方式。 –

+0

如果您在OS X或Ubuntu或其他任何使用'bash'的應用程序中使用iTerm,這並沒有什麼不同。它應該只是工作。 – JakeGould

+0

哦,等一下?你是否想在腳本中設置默認變量,以防有人不通過變量? – JakeGould

6

您可以使用語法:

a=${1:-default} 
+0

感謝您的幫助! –