2013-08-01 224 views
3

我完全不熟悉Linux中的「編程」,並且我懷疑在運行bash文件時是否可以包含變量的定義。在「bash XXX.sh」命令中運行一個包含變量的bash

我的bash文件需要變量才能從一個或另一個路徑走,所以我希望能夠在運行腳本時包含它。
事情是這樣的:

bash MYFILE.sh -VARIABLE 

所以-​​variable將在腳本中使用。

謝謝!

回答

2

您可以利用shell參數擴展來順利讀取父進程環境中的變量,如果這是您想實現的目標。

請看下面的腳本命名爲test.sh

#!/bin/bash 

VARIABLE=${VARIABLE:="default value"} 

echo $VARIABLE 

如果用線啓動

$ ./test.sh 

它輸出

default value 

但是,如果你調用test.sh與線

$ VARIABLE="custom Value" ./test.sh 

它輸出

custom value 

但要確保變量賦值是在該行的開頭。否則它會作爲命令行參數傳遞給test.sh

如果參數是設置或者爲空,字的膨脹被分配給參數:

參數擴展${parameter:=word}的使用形式在bash的參考手冊中描述。然後用參數的值代替。這種方式可能不會分配位置參數和特殊參數。