web-dev-qa-db-ja.com

UNIX、環境変数の取得

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

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

_echo ${VAR}
_

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

環境変数の内容を標準出力に取得するには、出力自体ではなくコマンド自体を見ている人がいなくても、環境変数の値を確認できます。

echo env(NAME_OF_VAR)のようなソリューションであることは想像できますが、見つけられないようです。ソリューションはshで動作する必要があります。

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

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

38
Mike

できるよ:

printenv VARIABLE_NAME

57
Sergei Kurenkov

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

printenv

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

echo $ VARIABLENAME

6
ASR

次のような意味ですか?

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

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

4
mouviciel

これはどう:

myVariable=$(env  | grep VARIABLE_NAME | grep -oe '[^=]*$');
3
jens_profile

${!VAR_NAME}の使用は、あなたが探しているものでなければなりません

> FOO=BAR123
> VAR_NAME=FOO
> echo ${VAR_NAME}
FOO
> echo ${!VAR_NAME}
BAR123
3
Ryan Anguiano

解決策は、単純な$VAR。たぶん、制限のないシェルを呼び出して、このサブシェルに変数を評価させることができます:

bash -c 'echo $VAR'
1
sth
( set -o posix ; set ) | grep $var

使用されているすべてのUNIX互換フォーマット変数を検索します

0
user3061097