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