設定されている環境変数を印刷するにはどうすればいいですか?
NAME=sam echo "$NAME" # empty
ここで使用してみると、それが機能していることがわかりますeval
。これが正しい方法でしょうか?
NAME=sam eval 'echo $NAME' # => sam
ベストアンサー1
これらは異なるコマンドとして実行する必要があります。例:
NAME=sam; echo "$NAME"
NAME=sam && echo "$NAME"
空文字列への展開は$NAME
、 を実行する前にシェルによって行われるため、変数がコマンドの環境に渡されるecho
時点では、展開はすでに行われています (null 文字列に)。NAME
echo
1 つのコマンドで同じ結果を得るには:
NAME=sam printenv NAME