2011-09-14 81 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 

$   

至于在脚本变量的实际内容和目的,我认为布莱恩和别人很好地回答这个问题。