2011-09-14 83 views
0

在我的shell腳本,我有這條線目前怎麼看Shell腳本變量定義

RUN_CMD="$JAVA_HOME/bin/java -cp $CLASSPATH com/mypack/BalanceRunner 

有誰請告訴我,什麼是這個命令RUN_CMD 的意思,我在哪裏可以看到這個RUN_CMD定義

感謝您閱讀

回答

3

這是定義一個環境變量RUN_CMD(貌似末省略,雖然報價)。它是運行該Java命令的簡寫(它定義在哪裏可以找到某些類,然後指定要運行哪個類)

該變量處於當前進程(shell或shell腳本很可能)的作用域中。你可以看到它的設置做:

echo $RUN_CMD 

(注:具體是殼依賴,但上述情況確實存在的肯定Bourne shell的衍生物)

+0

使用引號:'echo「$ RUN_CMD」' –

0

設置環境變量的值。至於你的問題的標題:

echo $ENV_VAR_NAME 

將一個定義的環境變量的值打印到控制檯

+0

我試着在Putty上echo $ RUN_CMD,它只顯示一個空的空間。 – Pawan

1

你報價分配行。

正如Brian所說,它只在當前過程的範圍內。

當你運行一個腳本(與./<script>bash <script>說),一個外殼創建了該腳本執行。因此,一旦腳本完成並且您返回提示,腳本中分配的所有變量都將不確定。

當然,如果您在當前shell中執行腳本,例如通過執行. <script>source <script>(有關更多詳細信息,請參閱shell的手冊),該例外情況當然是如此。

您可以在提示這個實驗:

$ FOO=bar 
$ if [ $FOO ]; then echo "FOO defined"; else echo "FOO undefined"; fi 
FOO defined 
$ echo $FOO 
bar 
$ unset FOO 
$if [ $FOO ]; then echo "FOO defined"; else echo "FOO undefined"; fi 
FOO undefined 
$ echo $FOO 

$ echo 'FOO=bar' > temp 
$ . temp 
$ echo $FOO 
bar 
$ unset FOO 
$ bash temp 
$ echo $FOO 

$   

至於在腳本變量的實際內容和目的,我認爲布萊恩和別人很好地回答這個問題。