你怎么能把你的.bashrc导出到.zshrc?

我正在尝试从Bash移到zsh。

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

你怎么能把你的.bashrc导出到.zshrc?

虽然lhunath的回答将我推向了正确的方向,但zsh似乎并没有自动生成.profile 。 很多关于这个话题的信息可以在这个超级用户的post中find。

我正在使用的适应是将常见的别名和function放在.profile并手动采购它们,如下所示:

的.bashrc

source ~/.profile

.zshrc

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

您不能您的.bashrc导出 ”为.zshrc.bashrc是一个运行bash命令的文件。 .zshrc是运行zsh命令的文件。

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

如果你想要一个通用的shell初始化文件的所有你的shell; 使用.profile (并删除.bashrc.zshrc )。 它来自所有POSIX炮弹。 在那里, 只能坚持POSIX shell的function。 然后,该代码将在任何POSIX shell中运行。 (虽然我不是100%确定zsh是符合POSIX的)。

请参阅: http : //mywiki.wooledge.org/DotFiles 。

虽然 – 而且我首先会误解这个部分的问题 – 除非你把zsh命令放在那里,否则在运行.bashrc时候你不应该遇到bash错误。 你是否? 你得到什么错误? 听起来像你已经将zsh代码添加到您的.bashrcbash (显然)不明白。

另外, ojblass试图提出一个只能部分成功的可移植性。 zsh是一个很棒的shell(虽然我自己没有这个荣誉),但是在编写脚本的时候, 我build议你用#!/usr/bin/env bash代替。 主要是为了你自己(最终,你与他们分享的人)的便携性。