[zsh] .bashrc를 .zshrc로 내보내려면 어떻게해야합니까?

Bash에서 zsh로 이동하려고합니다.

.bashrc를 .zshrc에 직접 넣었는데 Bash를 다시 사용하려고 할 때 많은 오류가 발생했습니다.

.bashrc를 .zshrc로 내보내려면 어떻게해야합니까?



답변

lhunath의 대답이 나를 올바른 방향으로 밀었지만 zsh는 .profile자동으로 소스를 제공하지 않는 것 같습니다 . 이 주제에 대한 많은 좋은 정보는 이 수퍼 유저 게시물 에서 찾을 수 있습니다 .

내가 사용하는 적응은 공통 별칭과 기능 .profile을 다음과 같이 수동으로 소싱하는 것입니다.

에서 ~/.bashrc:

source ~/.profile

에서 ~/.zshrc:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

emulatezsh 내장 명령입니다. 단일 인수로 zsh 옵션을 설정하여 지정된 쉘을 가능한 많이 에뮬레이트하십시오.


답변

당신은 “할 수 없습니다 수출 당신의” .bashrcA와 .zshrc. 명령 .bashrc을 실행하는 파일입니다 bash. 명령 .zshrc을 실행하는 파일입니다 zsh.

zsh에서 bash명령 을 실행할 수있을 것으로 기대할 수 없으므로 에서 실행하는 대신 .bashrc새 명령으로 변환해야 .zshrc합니다 .bashrc..zshrc 후자로 이전하거나 복사.

모든 쉘에 대한 공통 쉘 초기화 파일을 원한다면; 사용 .profile(및 제거 .bashrc하고 .zshrc). 모든 POSIX 셸에서 제공됩니다. 그리고 거기에서 POSIX 쉘 기능 만을 고수하십시오 . 그런 다음 해당 코드는 POSIX 셸에서 실행됩니다. (하지만 zshPOSIX를 준수하는지 100 % 확신하지는 않습니다 .)

보다: http://mywiki.wooledge.org/DotFiles .

그러나-그리고 나는 당신의 질문 의이 부분을 처음 잘못 읽었습니다-당신이 거기 에 명령 을 넣지 않는 한 당신을 bash실행할 때 오류를 경험해서는 안됩니다 . 당신은? 어떤 오류가 발생합니까? 당신이 당신의 코드를 추가 했고 (분명히) 이해하지 못하는 것처럼 들립니다..bashrczshzsh.bashrcbash

제쳐두고, ojblass부분적으로 만 성공하는 이식성 지점을 만들려고합니다. zsh대본을 작성할 때는 대단한 껍질이지만 (내 자신이 명예를 얻지는 못했지만) #!/usr/bin/env bash대신 그렇게하는 것이 좋습니다 . 대부분 자신의 (그리고 결국에는 당신이 그들과 공유하는 사람들) 이식성을 위해.


답변