53

ばかげた問題のためにばかげた質問があります。

通常、UNIXシェルで環境変数の内容を取得したい場合は、次のことができます

echo ${VAR}

私のばかげた状況のために、これは不可能であると仮定しましょう。

コマンド自体 (出力ではない) を見ている人なしで、環境変数の内容を stdout に取得するにはどうすればよいですか? 環境変数の値を参照してください。

echo env(NAME_OF_VAR)私はそれを見つけることができないようですが、解決策は次のようなものだと想像できます。解決策はshで機能する必要があります。

PS私はこれのためのスクリプトを書くことができません、それは組み込みのUNIXコマンドでなければなりません(私は知っています、ばかげた問題です)

ありがとう(そして不条理でごめんなさい)

4

7 に答える 7

75

できるよ:

printenv VARIABLE_NAME

于 2010-03-19T13:43:58.097 に答える
11

ターミナルで次のコマンドを入力すると、環境変数のすべてのリストが表示されます

printenv

次のように、必要な変数を出力します。

echo $VARIABLENAME

于 2014-08-01T11:18:36.177 に答える
4

あなたはこのようなことを意味しますか?

ENV() {
    printf 'echo $%s\n' $1 | sh
}

これは、プレーンな古いBourneシェルで機能します。

于 2010-03-19T13:40:32.503 に答える
3

これはどう:

myVariable=$(env  | grep VARIABLE_NAME | grep -oe '[^=]*$');
于 2010-03-19T13:36:13.327 に答える
2

解決策は、単純なを使用できない理由が何であるかによって異なります$VAR。おそらく、制限のないシェルを呼び出して、このサブシェルに変数を評価させることができます。

bash -c 'echo $VAR'
于 2010-03-19T13:56:59.190 に答える