如何将.bashrc导出到.zshrc?


85

我正在尝试从Bash迁移到zsh。

我将.bashrc直接放到.zshrc中,当我再次尝试使用Bash时,它导致了很多错误。

如何将.bashrc导出到.zshrc?


19
不要让这个zsh-hater让您失望。Zsh很棒!
杰里米·坎特雷尔

Answers:


109

虽然lhunath的答案将我推向了正确的方向,但zsh似乎并没有.profile自动获得信息。可以在此超级用户帖子上找到有关主题的大量有用信息

我正在使用的适应方法是将通用别名和函数放入.profile其中,并按如下方式手动进行采购:

~/.bashrc

source ~/.profile

~/.zshrc

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

emulate是zsh内置命令。使用单个参数设置zsh选项以尽可能模拟指定的shell。


2
是的,我认为这是最好的方法。谢谢您的回答!
莱奥波德·赫兹(LéoLéopoldHertz)2014年

上面的答案对我也很好。但是我每次打开zshrc终端时都必须这样做。你能告诉我如何纠正这个问题吗?
thedudecodes

32

您不能您的产品“出口.bashrc到一个出口.zshrc.bashrc是运行bash命令的文件。 .zshrc是运行zsh命令的文件。

你不能指望zsh能够运行bash在你的命令.bashrc,所以你应该把它转换成一个新的.zshrc,而不是试图运行.bashrc.zshrc或复制前者到后者。

如果您想要所有外壳的通用外壳初始化文件,请执行以下操作:使用.profile(并删除.bashrc.zshrc)。它由所有POSIX Shell来源。在那里,坚持使用POSIX shell功能。然后,该代码将在任何POSIX Shell中运行。(不过,我不确定100%zsh是否符合POSIX)。

看到: http://mywiki.wooledge.org/DotFiles

虽然,但我首先会误解您的问题的这一部分,除非您在其中放置命令,否则您不应bash在运行时遇到错误。你是否?您遇到什么错误?在我看来,您已经向自己添加了代码,并且(显然)不理解。.bashrczshzsh.bashrcbash

ojblass顺便说一句,试图提出可移植性的观点,但只能部分成功。 zsh是一个很棒的外壳(尽管我自己还没有获得荣誉),但是在编写脚本时;我建议您#!/usr/bin/env bash改为这样做。主要是为了您自己(以及最终与您共享的人)的可移植性。


看一下“我将.bashrc直接放到.zshrc中,这在我再次尝试使用Bash时引起很多错误。” 现在想一想会是什么原因...然后重新撰写您的帖子。
ojblass
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.