シェルevalの環境変数を変数で取得する方法
2022-02-08 02:49:54
シナリオ
- システム内に環境変数が存在する USER=iceber
- スクリプト内に変数が存在します env_name=USER
- 環境変数USERの値は、変数env_nameから取得する必要があります。
エラー例
$ # Environment variable USER already exists in the environment
$ env_name=USER
$ echo ${$env_name}
${$env_name}: bad substitution
明らかに、値を取得するために直接ネストされた$を使用しては動作しません。
正しい例
$ # Environment variable already exists in the environment USER
$ env_name=USER
$ eval echo '$'$env_name
icebergu
eval は引数を変数に置き換えてから、コマンドとして実行します。
eval echo '$'$env_naem
-
まず $env_name が USER に置き換えられ、前の '$' で $USER という文字列になり、コマンドは実際に eval echo $USER になります。
-
そして、再度eval echo $USERで環境変数の取得が完了します。
上記の解析からわかるように、このコマンドは実際には eval echo \$$env_name と書くことができ、これも動作します。
同様に、ある変数が他の変数の名前を持っている場合、eval を使ってその変数の値を取得することができます。
シェルevalの変数から環境変数を取得する方法については、今回で終わりです。Shell eval による環境変数の取得方法については、Script House の過去の記事を検索するか、以下の関連記事を引き続き参照してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン