题
我正在尝试从 Bash 迁移到 zsh。
我将 .bashrc 直接放入 .zshrc 中,当我再次尝试使用 Bash 时,它导致了很多错误。
如何将 .bashrc 导出到 .zshrc?
解决方案
虽然lhunath的回答把我推在正确的方向,zsh的似乎没有源.profile
自动执行。很多关于这个主题好消息的可以在这个超级用户帖子。
我使用的适配是把共同别名和函数在.profile
和手动采购它们如下:
的.bashrc
source ~/.profile
.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
其他提示
你不能“出口“ 你的 .bashrc
到一个 .zshrc
. .bashrc
是一个运行的文件 bash
命令。 .zshrc
是一个运行的文件 zsh
命令。
你不能期望 zsh
能够运行 bash
命令在你的 .bashrc
, ,所以你应该将其转换为新的 .zshrc
而不是尝试运行 .bashrc
从 .zshrc
或者将前者复制到后者中。
如果您想要所有 shell 都有一个通用的 shell 初始化文件;使用 .profile
(并删除 .bashrc
和 .zshrc
)。它源自所有 POSIX shell。在那里,坚持 POSIX shell 功能 仅有的. 。然后该代码将在任何 POSIX shell 中运行。(尽管如此,我并不能 100% 确定 zsh
符合 POSIX 标准)。
看: http://mywiki.wooledge.org/DotFiles.
虽然 - 我首先误读了你问题的这一部分 - 你不应该遇到以下错误 bash
当运行你的 .bashrc
除非你把 zsh
那里有命令。你是否?您遇到什么错误?听起来你已经添加了 zsh
代码到你的 .bashrc
和 bash
(显然)不明白。
作为旁白, ojblass
试图强调可移植性,但只取得了部分成功。 zsh
是一个很棒的 shell(虽然我自己没有获得过这种荣誉),但是在编写脚本时;我建议你这样做 #!/usr/bin/env bash
反而。主要只是为了您自己(以及最终与您共享的人)的可移植性。