我正在尝试从 Bash 迁移到 zsh。
我把我的 .bashrc 直接放到了我的 .zshrc 中,当我再次尝试使用 Bash 时,它导致了很多错误。
如何将 .bashrc 导出到 .zshrc?
您不能将您的“导出”.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
是一个很棒的外壳(虽然我自己没有获得荣誉),但是在编写脚本时;我建议你这样做#!/usr/bin/env bash
。主要是为了您自己(以及最终与您共享的人)的可移植性。
对我来说,Ryen 的回答很方便。但我做了一点改变。我在用户目录(vim ~/.profile)的 .profile 中添加了所有别名命令。
alias gs='git status'
alias gp='git pull'
alias gph='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -m'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'
alias gfo='git fetch origin'
然后,我在 bash 和 zsh shell 中添加了 source 命令。
在 bash shell ( vim ~/.bashrc)
source ~/.profile
在 zsh shell ( vim ~/.zshrc )
source ~/.profile