bash
수년간 사용해 왔고 앞으로도 계속 사용하고 싶습니다. 그러나 동시에, 거기에는 몇 가지 zsh
훌륭한 유틸리티 가 있습니다. 이러한 명령에 대한 포트가 있습니까(예 zmv
: zcalc
또는 zparseopts
별도의 실행 파일로 존재 /bin
)? 아니면 다음과 같은 트릭을 사용해야합니까?이것?
답변1
zsh
장점은 매우 뛰어난 와일드카드 및 매개변수 확장 연산자 zmv
에 있습니다 . zsh
유사한 것들은 '의 와일드카드 및 매개변수 확장 연산자 bmv
로 제한되며 '만큼 유용 bash
하지 않습니다 .zsh
zmv
유사한 연산자를 사용하는 for 가 있는 경우 zmv
에도 해당 연산자를 배워야 하며 이러한 고급 연산자를 사용할 수 없는 곳에서 사용할 때 좌절감을 느끼게 됩니다.bash
zsh
bash
어쨌든 bash
다음을 통해 언제든지 후자를 수행할 수 있습니다.
zmv() {
zsh -c 'autoload zmv && zmv "$@"' zmv "$@"
}
zcalc() {
zsh -c 'autoload zcalc && zcalc "$@"' zcalc "$@"
}
zmv
여기서 및 은 인터프리터에 대한 새로운 호출에서 zcalc
해당 함수를 실행하는 함수 로 정의됩니다.zsh
zsh
bash
그러나 이 함수의 한계는 분명히 쉘의 내부 변수 에 접근할 수 없다는 것입니다 .
예를 들어, pi = 4 * atan(1)
that에서 이 작업을 수행 하면 zcalc
해당 $pi
변수는 쉘에서 사용할 수 없게 됩니다 bash
.
같은 이유로 이 접근 방식을 취하는 것은 zparseopts
전혀 쓸모가 없습니다.