我正在尝试从 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 代码到你的 .bashrcbash (显然)不明白。

作为旁白, ojblass 试图强调可移植性,但只取得了部分成功。 zsh 是一个很棒的 shell(虽然我自己没有获得过这种荣誉),但是在编写脚本时;我建议你这样做 #!/usr/bin/env bash 反而。主要只是为了您自己(以及最终与您共享的人)的可移植性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top