.bashrc 有问题

-2 bash zsh path

我阅读了有关如何将文件夹添加到PATH. 我将以下内容添加到.bashrc文件中:

export PATH=/opt/aseprite/build/bin
Run Code Online (Sandbox Code Playgroud)

当我尝试使用source ./.bashrcfrom 时zsh 出现此错误

/home/luke/.bashrc:16: command not found: shopt
/home/luke/.bashrc:24: command not found: shopt
/home/luke/.bashrc:111: command not found: shopt
/usr/share/bash-completion/bash_completion:45: command not found: shopt
/usr/share/bash-completion/bash_completion:1512: parse error near `|'
\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$
Run Code Online (Sandbox Code Playgroud)

这是我的完整链接.bashrchttps : //pastebin.com/28RQV97K

我在PATH这里的变量有什么问题?

Adm*_*Bee 7

你的问题有两个方面:

1.您覆盖了路径规范

跟你的

export PATH=/opt/aseprite/build/bin
Run Code Online (Sandbox Code Playgroud)

您尚未向 中添加文件夹PATH,而是将其覆盖。因此,您的 bash 无法在外部找到任何可执行文件/opt/aseprite/build/bin(除非您使用绝对路径调用它们)。

相反,你应该做的是

export PATH="$PATH":/opt/aseprite/build/bin
Run Code Online (Sandbox Code Playgroud)

这会将新路径附加到变量的现有内容。

然而,更重要的是:

2.你使用了错误的配置文件

如果您使用zsh.bashrc是,则用于外壳设置的文件是错误的。这两个 shell 在处理环境设置的方式和使用的语法方面有很大不同,因此即使bash. 您显示的错误演示了如何zsh无法应用bash特定的命令和设置,如果您从 a bash(特别shopt是无法知道的bash内置命令zsh)获取文件,这些命令和设置可能会正常工作。

相反,看看这个问题如何添加路径zsh

幸运的是,因为你只sourced.bashrc,错误的设置才会生效在您运行该命令的终端,并打开一个新的控制台会给你一个全新的开始(因为zsh不会自动读取你错误地修改.bashrc)。