[解決済み] Bashでの動的な変数名
2022-02-07 16:51:57
質問
bashスクリプトについて混乱しています。
私は以下のコードを持っています。
function grep_search() {
magic_way_to_define_magic_variable_$1=`ls | tail -1`
echo $magic_variable_$1
}
コマンドの第一引数を含む変数名を作成し、その値を例えば
ls
.
そこで、私が欲しいものを説明するために
$ ls | tail -1
stack-overflow.txt
$ grep_search() open_box
stack-overflow.txt
では、どのように定義/宣言すればよいのでしょうか。
$magic_way_to_define_magic_variable_$1
そして、それをスクリプト内でどのように呼び出せばよいのでしょうか。
私が試したのは
eval
,
${...}
,
\$${...}
しかし、私はまだ混乱しています。
どのように解決するのですか?
コマンド名をキーとする連想配列を使用します。
# Requires bash 4, though
declare -A magic_variable=()
function grep_search() {
magic_variable[$1]=$( ls | tail -1 )
echo ${magic_variable[$1]}
}
連想配列が使えない場合(たとえば
bash
3) を使用することができます。
declare
を使用して、動的な変数名を作成します。
declare "magic_variable_$1=$(ls | tail -1)"
で、その値にアクセスするために間接的なパラメータ展開を使用します。
var="magic_variable_$1"
echo "${!var}"
BashFAQを参照してください。 Indirection - 間接変数/参照変数を評価する .
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み】ZIPエラー - 何もできない
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] バッシュ Vim.NET」が表示されたらVimを終了させる Warning: 出力先が端末でない"
-
[解決済み] ファイルに書き込むが、ファイルが存在する場合は上書きする
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] zip警告 - 名前が一致しない
-
[解決済み] mkdir コマンドが bash スクリプトで見つかりません。
-
[解決済み] bashで::演算子は何をするのですか?
-
[解決済み] 絶対パスと論理パスの違い