zshで引用符で囲まれたパラメータ拡張

zshで引用符で囲まれたパラメータ拡張

emulateBashシミュレーションでコマンドを評価するために関数引数を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)@})" } 

おすすめ記事