2009-04-19 37 views
40

我想從Bash移到zsh。如何將.bashrc導出爲.zshrc?

我將我的.bashrc直接放到我的.zshrc文件中,當我嘗試再次使用Bash時,它導致了很多錯誤。

如何將.bashrc導出爲.zshrc?

+12

不要讓這個zsh-hater讓你失望。 Zsh很棒! – 2009-04-19 03:05:51

回答

47

雖然lhunath的回答將我推向正確的方向,但zsh似乎並未自動獲取.profile。很多關於此主題的信息都可以在this superuser post找到。

我使用的是投入.profile共同別名和功能,手動採購它們如下適配:

的.bashrc

source ~/.profile

.zshrc

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

21

你不能「出口」你的.bashrc.zshrc.bashrc是運行bash命令的文件。 .zshrc是執行zsh命令的文件。

你不能指望zsh能夠在您的.bashrc運行bash命令,所以你應該把它轉換成一個新的.zshrc,而不是試圖從.zshrc運行.bashrc或複製前者到後者。

如果你想爲你的所有shell使用一個通用的shell初始化文件,使用.profile(並刪除.bashrc.zshrc)。它來自所有POSIX炮彈。並且在那裏,堅持POSIX shell功能只有。然後該代碼將在任何POSIX shell中運行。 (雖然,我不是100%肯定zsh是符合POSIX的)。

參見:http://mywiki.wooledge.org/DotFiles

雖然 - 我首先會誤解你的問題的這一部分 - 你不應該在運行你的.bashrc時遇到bash的錯誤,除非你把zsh命令放在那裏。你是否?你得到什麼錯誤?聽起來像你已經將zsh代碼添加到您的.bashrcbash(顯然)不明白。

順便說一句,ojblass試圖提出一個只有部分成功的可移植點。 zsh是一個很棒的外殼(儘管我自己沒有得到這些榮譽),但是在編寫腳本時;我建議你用#!/usr/bin/env bash來代替。主要是爲了你自己(最終,你與他們分享的人)爲便於攜帶。

+0

看看「我將我的.bashrc直接放到我的.zshrc文件中,當我嘗試再次使用Bash時,它引發了很多錯誤。」現在想一下什麼會導致...然後重新寫上你的文章。 – ojblass 2009-04-19 06:50:27

+0

@ojblass:很對;誤解了這個問題。 – lhunath 2009-04-19 14:09:58