zsh의 별칭과 bash의 별칭의 차이점

zsh의 별칭과 bash의 별칭의 차이점

주변을 검색했지만 결정적인 내용을 찾을 수 없습니다. zsh의 alias 명령과 bash의 alias 명령 사이에 차이점이 있습니까? 그렇지 않은 경우 두 셸 간에 별칭 집합을 공유하고 예상대로 작동할 수 있다는 의미입니까?

답변1

이 명령의 구문은 alias모든 Bourne 스타일 쉘에서 동일합니다. 따라서 모든 쉘에서 의미가 있는 한 ~/.zshrc, ~/.bashrc, , ~/.kshrc사이에서 공유 할 수 있습니다.~/.shrc

모든 셸에서 지원되는 구문 하위 집합을 사용하는 한 변수 정의 및 함수 정의에도 동일하게 적용됩니다.

4.0 이전 버전의 zsh를 사용하지 않는 경우 모든 쉘 독립적 정의를 (예를 들어)라는 파일에 넣을 수 있습니다. ~/.common.rc.sh여기서 첫 번째 줄은 다음과 같습니다.

emulate -LR sh 2>/dev/null

이는 zsh가 이 파일에서만 sh 호환 구문을 기대하도록 지시합니다. 그런 다음 등 의 시작 부분 근처에 파일을 가져옵니다 ~/.bashrc.~/.bashrc~/.kshrc

그것이 기본적으로 내가 하는 일이다. 예를 들어, 사용 가능한 옵션( , , 등) ls을 기반으로 즐겨찾는 옵션에 대한 별칭을 생성하는 복잡한 코드가 있습니다 . 따라서 .--color-G-F.common.rc.shalias zcp='zmv -C'.zshrc

답변2

~에 따르면Zsh 스튜디오 별칭그들은 동일한 구문을 가지고 있는 것 같으므로 제대로 작동할 것입니다.

답변3

zshs는 alias전역 앨리어싱을 허용하는 반면 bashs는 줄의 시작 부분에서만 확장됩니다.

존재하다 zsh:

alias -g L="| less -FRX"

그러면 다음과 같이 할 수 있습니다:

verbose-command L

바라보다여기유용한 전역 별칭 ​​목록을 가져옵니다.

관련 정보