[解決済み] 変数名が文字列で保存されている場合、変数値を取得する方法は?
質問
bashの変数名を文字列として持っている場合、どのように値を取得することができますか?
var1="this is the real value"
a="var1"
Do something to get value of var1 just using variable a.
コンテキスト
いくつかのAMIがあるのですが( アマゾン・マシン・イメージ ) で、それぞれのAMIのインスタンスをいくつか起動させたいと思います。起動が終わるとすぐに、各インスタンスをAMIの種類に応じてセットアップしたいと思います。AMIの中にたくさんのスクリプトや秘密鍵を入れたくないので、一般的な起動スクリプトを用意して、それを S3 というリンクで公開されています。rc.localには、起動スクリプトを取得して実行する小さなコード片を置きました。AMIに入れるのはこれだけです。それから、各AMIはすべてのAMIに適用される共通の設定スクリプトと、それぞれのAMI用の特別な設定スクリプトにアクセスします。これらのスクリプトはプライベートなもので、アクセスするには署名されたURLが必要です。
そこで、あるAMI(my_private_ami_1)のインスタンスを起動するときに、S3上に提示されたもう1つのファイルに対して署名付きURLを渡します。このファイルには、すべてのプライベートスクリプトの署名付きURLがキーと値のペアで格納されています。
config_url="http://s3.amazo.../config?signature"
my_private_ami_1="http://s3.amazo.../ami_1?signature"
...
起動スクリプトが実行されると、上記のファイルがダウンロードされ
source
を作成します。そして、AMIの種類をチェックし、自分用に正しいセットアップスクリプトを選びます。
ami\_type=GET AMI TYPE #ex: sets ami\_type to my\_private\_ami\_1
setup\_url=GET THE SETUP FILE URL BASED ON AMI\_TYPE # this is where this problem arises
これで、AMIの種類に関係なくインスタンスを起動できる汎用的なコードができ、インスタンスも自分自身で管理できるようになりました。
どのように解決するのですか?
を使用することができます。
${!a}
:
var1="this is the real value"
a="var1"
echo "${!a}" # outputs 'this is the real value'
これは、間接的な例です。 パラメータ展開 :
パラメータ展開の基本形は
${parameter}
. の値はparameter
が代入される。の最初の文字が
parameter
が感嘆符(!)である場合、それは は、変数のインダイレクトのレベルを導入しています。Bashは の残りの部分から形成されるparameter
の名前として使用します。 この変数が展開され、その値が の値ではなく、残りの代入を行います。parameter
そのものである。
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで変数が文字列かどうかをチェックする
-
[解決済み] goで文字列の連結を効率的に行う方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
sql 日付形式変換関数_SQL 日付変換
-
[解決済み] Bashで部分文字列を抽出する
-
[解決済み] Powershellで複数のファイル内の文字列を検索してファイル名を返すには?
-
[解決済み】Swiftで文字列を連結する方法は?
-
[解決済み] sed/grepを使って、2つの単語の間のテキストを抽出するには?
-
[解決済み] Swift: 列挙型の値を文字列に変換しますか?
-
[解決済み] 文字列を分割して変数に代入する方法
-
[解決済み] 関数の引数として、文字列(&String)、Vec(&Vec)、ボックス(&Box)への参照を受け取ることは、なぜ推奨されないのですか?
-
[解決済み] 既に存在する文字列に追加するには?
-
[解決済み] 文字列から使える番地、市区町村、郵便番号の解析【非公開