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


85

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

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

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


19
이 zsh-hater가 당신을 실망시키지 마십시오. Zsh는 훌륭합니다!
Jeremy Cantrell

답변:


109

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

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

에서 ~/.bashrc:

source ~/.profile

에서 ~/.zshrc:

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

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


2
예, 이것이 최선의 방법이라고 생각합니다. 답변 주셔서 감사합니다!
Léo Léopold Hertz 준영

위의 답변은 저에게도 잘 작동합니다. 하지만 zshrc 터미널을 열 때마다이 작업을 수행해야합니다. 이 문제를 해결하는 방법을 알려주세요.
thedudecodes aug

32

당신은 "할 수 없습니다 수출 당신의" .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대신 그렇게하는 것이 좋습니다 . 대부분 자신의 (그리고 결국에는 당신이 그들과 공유하는 사람들) 이식성을 위해.


"내 .bashrc를 내 .zshrc에 직접 넣었는데 Bash를 다시 사용하려고 할 때 많은 오류가 발생했습니다."라는 문구를보십시오. 이제 그 원인이 무엇인지 잠시 생각한 다음 게시물을 다시 작성하십시오.
ojblass
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.