在我的shell腳本,我有這條線目前怎麼看Shell腳本變量定義
RUN_CMD="$JAVA_HOME/bin/java -cp $CLASSPATH com/mypack/BalanceRunner
有誰請告訴我,什麼是這個命令RUN_CMD 的意思,我在哪裏可以看到這個RUN_CMD定義
感謝您閱讀
在我的shell腳本,我有這條線目前怎麼看Shell腳本變量定義
RUN_CMD="$JAVA_HOME/bin/java -cp $CLASSPATH com/mypack/BalanceRunner
有誰請告訴我,什麼是這個命令RUN_CMD 的意思,我在哪裏可以看到這個RUN_CMD定義
感謝您閱讀
這是定義一個環境變量RUN_CMD
(貌似末省略,雖然報價)。它是運行該Java命令的簡寫(它定義在哪裏可以找到某些類,然後指定要運行哪個類)
該變量處於當前進程(shell或shell腳本很可能)的作用域中。你可以看到它的設置做:
echo $RUN_CMD
(注:具體是殼依賴,但上述情況確實存在的肯定Bourne shell的衍生物)
設置環境變量的值。至於你的問題的標題:
echo $ENV_VAR_NAME
將一個定義的環境變量的值打印到控制檯
我試着在Putty上echo $ RUN_CMD,它只顯示一個空的空間。 – Pawan
你報價是分配行。
正如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
$
至於在腳本變量的實際內容和目的,我認爲布萊恩和別人很好地回答這個問題。
使用引號:'echo「$ RUN_CMD」' –