加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – zsh和普通shell如何共享环境变量和别名而不相互复制

发布时间:2020-12-13 23:27:59 所属栏目:Linux 来源:网络整理
导读:现在我尝试从正常的Ubuntu bash使用zsh.当我更改为zsh shell时,我发现.bashrc中以前的环境变量(例如JAVA_HOME)无法自动迁移到.zshrc.现在我只是将它们(导出,.bashrc中的别名)复制到.zshrc.我想知道是否有其他方便的方法在.bashrc中分享这些东西,并且不需要显
现在我尝试从正常的Ubuntu bash使用zsh.当我更改为zsh shell时,我发现.bashrc中以前的环境变量(例如JAVA_HOME)无法自动迁移到.zshrc.现在我只是将它们(导出,.bashrc中的别名)复制到.zshrc.我想知道是否有其他方便的方法在.bashrc中分享这些东西,并且不需要显式复制它们?即使我在.zshrc中添加内容然后更改为普通bash仍然可以在.zshrc中共享它们而不将它们复制到.bashrc.

我试图在.bashrc中输出.zshrc,然后更改为bash,发现下面的错误

exec bash
autoload: command not found
bash: /home/zhuguowei/.oh-my-zsh/oh-my-zsh.sh: line 31: syntax error near unexpected token `('
bash: /home/zhuguowei/.oh-my-zsh/oh-my-zsh.sh: line 31: `for config_file ($ZSH/lib/*.zsh); do'

在.zshrc中我也尝试过源.bashrc,也有错误

source .zshrc 
/home/zhuguowei/.bashrc:16: command not found: shopt
/home/zhuguowei/.bashrc:24: command not found: shopt
/home/zhuguowei/.bashrc:108: command not found: shopt
/usr/share/bash-completion/bash_completion:35: parse error near `]]'
[e]0;u@h: wa]u@h:w$

解决方法

在.bashrc中,您可以使用export将变量(通常在UPPER_CASE中)导出到将发送到从shell执行的命令的环境中.

一个简单的.bashrc示例

# Here is the content of the .bashrc

export SOMETHING=42

现在在bash中,在获取bashrc后,我有一个名为SOMETHING的环境变量,其中包含42个

您可以通过命令环境检查发送给环境的环境是什么

现在,在打开的bash中,您可以启动zsh,然后检查(使用env)zsh的当前环境.

现在在打开的zsh中,您可以回显$SOMETHING并查看答案42

注意:如果你不知道我为什么用42:(wikipedia)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读