如何查看Shell Scripts Variables定义

时间:2011-09-14 10:29:27

标签: linux shell

在我的Shell脚本中,我有这一行

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

有人请告诉我,这个命令是什么意思RUN_CMD 我在哪里可以看到这个RUN_CMD定义

感谢您阅读

3 个答案:

答案 0 :(得分:3)

这是定义一个环境变量RUN_CMD(看起来像最后省略的引用)。它是运行该Java命令的简写(它定义了在哪里查找某些类,然后指定要运行的类 - BalanceRunner

变量在当前进程的范围内(最有可能是shell或shell脚本)。你可以通过以下方式看到它的设置:

echo $RUN_CMD

(注意:细节是依赖于shell的,但对于Bourne shell衍生产品,上述情况确实如此)

答案 1 :(得分:1)

您引用的行是作业。

正如Brian所说,这只是当前流程的范围。

当您运行脚本(比如./<script>bash <script>)时,会创建一个 new shell,其中执行脚本。因此,一旦脚本完成并且您返回到提示符,脚本中分配的所有变量都将是未定义的。

当然,如果您在当前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

$        

至于脚本中变量的实际内容和目的,我认为Brian和其他人很好地回答了这个问题。

答案 2 :(得分:0)

您可以设置环境变量的值。关于你问题的标题:

 echo $ENV_VAR_NAME

会将已定义环境变量的值打印到控制台