Развернуть параметр в кавычках в Zsh


0

Я хочу передать аргументы функции 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)*}флагами расширения. Пока ничего хорошего.

Есть ли способ добиться этого?

Ответы:


0

Вы могли бы иметь некоторый успех с

.bash() { emulate bash -c "$(echo ${(qq)@})" } 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.