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)@})" } 

관련 정보