emulate
Bashシミュレーションでコマンドを評価するために関数引数をzshに渡したいと思います。
$ .bash() { emulate bash -c "$*" }
$ .bash 'source /path/to/script.sh'
大丈夫です。しかし、以下のように辞書コマンド修飾子(構文強調、完成などを使用)のように引用符なしで使用したいと思います。
$ .bash source /path/to/script.sh
コマンドラインに引用符付きスペースが含まれていると問題が発生します。
$ .bash source /path/to/"script with spaces".sh
$ # I want it to expand to
$ emulate bash -c 'source /path/to/"script with spaces".sh'
$ # or the like
${(qq)*}
別の引用符と拡張フラグを試してみました。今までは良い結果はありません。
これを達成する方法はありますか?
答え1
ある程度成功するかもしれない
.bash() { emulate bash -c "$(echo ${(qq)@})" }