- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:shellスクリプトで引数をhashとして展開させ)
シェルスクリプトで引数をハッシュとして展開させる方法
このQ&Aのポイント
- シェルスクリプトで引数をハッシュの文字列として展開する方法について考えています。
- 現在はelifの部分を沢山書いていく必要がありますが、$1の値をハッシュとして展開させる方法がわかりません。
- 具体的な展開の方法がわからず困っています。助けていただけると幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
eval
その他の回答 (2)
- entree
- ベストアンサー率55% (405/735)
回答No.3
これでよろしいでしょうか? case "$1" in abc|xyz) eval "echo \"\$1:\${$1[\$(( \${RANDOM} * 11 / 32768 ))]}\"" ;; *) echo "$1:${zzz[$(( ${RANDOM} * 11 / 32768 ))]}" ;; esac
質問者
お礼
スクリプトの記述まで頂きありがとうございます。 実行してみたのですが、エラーとなってしまっていました。 ありがとうございました。また宜しくお願い致します。
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
あるいは、hash["abc0"]="0" などと、$1まで含めたものをキーにする
質問者
お礼
なるほどですね、hashのキーに入れるのは、思いつきませんでした。 ありがとうございます。
お礼
一番最初の回答 evalでぐぐってみて、 evalをヒントに恐る恐るやってみたら、下記の形でうまくいきました。 eval echo "$1:\${$1[$(( ${RANDOM} * 11 / 32768 ))]}" ありがとうございます。