2011-09-14 6 views
0

を定義したシェルスクリプトの変数を参照してくださいするために、私はこのラインを持っている存在どのようにシェルスクリプト内

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

誰もが、このコマンドRUN_CMD 、どこが何を意味するのか私はこのRUN_CMDが

を定義した見ることができ、私に教えてもらえます

環境変数RUN_CMD(ただし、末尾に省略引用符のように見える)を定義だ

答えて

3

を読んでくれてありがとう。そのJavaコマンドを実行するための略語です(いくつかのクラスを見つける場所を定義し、実行するクラスを指定します。BalanceRunner

変数は現在のプロセス(シェルまたはシェルスクリプト)の有効範囲内にあります。あなたはそれを実行してに設定されていますかを見ることができます。

echo $RUN_CMD 

(注:詳細はシェルに依存しますが、上記のは確かBourneシェル誘導体についても同様です)

+0

引用符を使用してください: 'echo" $ RUN_CMD "' –

0

あなたは環境変数の値を設定します。あなたの質問のタイトルの通り:

echo $ENV_VAR_NAME 

は、コンソール

+0

私はputtyに$ RUN_CMDをエコーし​​ようとしましたが、空のスペースしか表示されませんでした。 – Pawan

1

あなたは割り当てで引用行に定義された環境変数の値を出力します。

ブライアンは言っていますが、それは現在のプロセスの範囲にすぎません。

スクリプトが実行されるスクリプト(./<script>またはbash <script>と言う)、新しいシェルが作成さを実行します。そのため、スクリプトが終了してプロンプトに戻ると、スクリプトに割り当てられているすべての変数は未定義になります。

現在のシェルでスクリプトを実行する場合は、もちろん、. <script>またはsource <script>で実行する(詳細については、シェルのマニュアルを参照してください)。あなたが迅速にこれを試すことができ

:スクリプト内の変数の実際の内容と目的については

$ 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 

$   

を、私はブライアンと他の人が見事にこれを答えると思います。

関連する問題