鱼壳未从 bashrc 加载到路径中[关闭]
Posted
技术标签:
【中文标题】鱼壳未从 bashrc 加载到路径中[关闭]【英文标题】:Fish shell not loading in paths from bashrc [closed] 【发布时间】:2021-11-26 17:36:54 【问题描述】:我有一个鱼壳,当我启动它时它不会从 bash 加载路径。
我的~/.bashrc
中有以下行
export PATH=$PATH:/usr/local/go/bin
当一个新的fish终端默认打开时,go不会被识别。但是,当我通过运行bash
切换到bash,然后通过运行fish
回到fish 时,路径被加载并开始工作。有没有办法让bashrc
文件中的路径自动加载而无需我在fish 中再次定义它们?
【问题讨论】:
你的登录shell是什么?您确定在登录时使用.bashrc
进行采购吗?如果 fish 确实是你的登录 shell,为什么不从 ~/.config/fish/config.fish
获取 .bashrc
呢?请参阅 Ask Ubuntu 上的 How to add exports to fish like in .bashrc?。
fish
和 bash
是两个完全独立的外壳。没有理由为什么fish
会从.bashrc
那里得到任何东西。
【参考方案1】:
正如@chepner 正确指出的那样,最好让fish 的config.fish 独立于.bashrc,因为这些shell 使用不同的语法。如果您确实需要使用 .bashrc 并将该脚本限制为 fish 的语法细微差别,请尝试将其添加到您的 ~/.config/fish/config.fish
文件中:
bashrc=$HOME/.bashrc
[ -f "$bashrc" ] && source "$bashrc"
【讨论】:
最好在config.fish
中明确设置路径(假设fish
不会从bash
的另一个实例继承PATH
)而不是要求.bashrc
符合在bash
和fish
中都有效的代码子集。
添加行后我收到以下错误~/.config/fish/config.fish (line 2): Unsupported use of '='. In fish, please use 'set bashrc $HOME/.bashrc'. from sourcing file ~/.config/fish/config.fish called during startup source: Error while reading file '/home/prnvbn/.config/fish/config.fish'
是的,fish 与 bash 不兼容,因此读取 .bashrc 通常不起作用。这两种语言的共同子集非常小——甚至没有变量定义或if
块。【参考方案2】:
在路径中加载的可疑方法是只运行一次以下命令。
set -U fish_user_paths /usr/local/go/bin $fish_user_paths
运行此命令一次相当于将导出语句添加到您的.bashrc
文件中。
感谢其他人的回答,但我觉得这最好地解决了我的问题!
【讨论】:
以上是关于鱼壳未从 bashrc 加载到路径中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
未找到模块:错误:包路径 ./locales 在角度更新到 13 后未从包中导出