在我的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”' –