我需要在 Ubuntu 上为我的大学安装几个程序,这些程序需要额外的行,.bashrc
如下所示
if [ -d /opt/pic32mx/bin ] ; then
export PATH=$PATH:/opt/pic32mx/bin
fi
export CLASSPATH=".:/usr/local/lib/antlr-4.9.2-complete.jar:/usr/local/lib/ST-4.3.1.jar:"
export ANTLR4_PATH="/usr/local/lib"
看来 fish-shell 无法识别这些导出,因此无法运行命令,如果我想运行它,我必须转到我的 bash。有没有一个简单的解决方案,让 fish 能够识别命令并像我的 bash 一样正常工作?
答案1
鱼类用途命令set
用于设置变量。
此外,最近添加的fish_add_path
命令可用于将目录添加到 PATH。如果您使用的是旧版本的 fish,请使用fish_user_paths
所述目录在教程中。
注意鱼会做一些有趣的事情以 *PATH 结尾的变量——它假定其他进程需要一个以冒号分隔的目录列表,所以它提供了以下内容:
$ set -gx FOO_PATH foo bar baz
$ set --show FOO_PATH
$FOO_PATH: set in global scope, exported, a path variable with 3 elements
$FOO_PATH[1]: |foo|
$FOO_PATH[2]: |bar|
$FOO_PATH[3]: |baz|
$ bash -c 'declare -p FOO_PATH'
declare -x FOO_PATH="foo:bar:baz"
解决方案是将 bash 命令转换为 fish 命令,并将它们存储在您的~/.config/fish/config.fish
文件中:
if [ -d /opt/pic32mx/bin ]
set fish_user_paths $fish_user_paths /opt/pic32mx/bin
end
set -gx CLASSPATH . /usr/local/lib/antlr-4.9.2-complete.jar /usr/local/lib/ST-4.3.1.jar ""
set -gx ANTLR4_PATH /usr/local/lib