引数処理をしたくてこちらの記事(https://chitoku.jp/programming/bash-getopts-long-options)を参考にさせて頂いてコードを書いてたときの話
bashで間接展開という(割と?)便利な記法がある
変数の値を変数名として展開するやつ.便利だなと思うんだけどこれを(da)sh,zshで実行するとエラーになる
いちいち使い分けるのは面倒なので全部のシェルで動くようにしたい...
zsh indirect expansionとかでググったら掲示板あったから調べたりドキュメント見た結果から分かったことを残しておこう.
zshでのみ有効な間接展開
まずはzshでのみ有効なやつ
!ではなく(P)を使うと行けるっぽい
(da)sh,zsh,bashで有効な間接展開
evalを使う
"\$"$src""という風にダブルクォートの中でダブルクォートしないとうまくいかない
確認
以下のコードを(da)sh,zsh,bashで実行
各シェルでの実行結果



evalを使うとどのシェルでも間接展開に対応できてることが分かる.







