Я хочу передать аргументы функции zsh emulate
для оценки команды в эмуляции bash:
$ .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)*}
флагами расширения. Пока ничего хорошего.
Есть ли способ добиться этого?