Fish shell 中的路径设置

5

Laravel 需要设置路径。具体方法如下:

export PATH="$PATH:$HOME/.composer/vendor/bin"

我在bash中能够完成它,但我需要在fish shell中持久化。 我尝试在~/.config/fish/config.fish中通过set -u进行设置,但不起作用。

1个回答

20

在 fish 中,$PATH、$MANPATH 和 $CDPATH 会自动转换为列表。

这意味着你的命令在 fish 中本来的等效命令(实际上在 2.6.0 版本中可以直接使用,因为 fish 提供了一个 export 兼容函数)是:

set -gx PATH $PATH $HOME/.composer/vendor/bin

现在,您不希望普遍设置 $PATH。实际上,在99%的情况下,它作为全局变量从父进程继承,全局变量会覆盖通用变量(这意味着通用变量是无意义的)。

但是,Fish 有一个 $fish_user_paths 通用变量,它将在 $PATH 前面加上,因此您也可以使用:

set -U fish_user_paths $HOME/.composer/vendor/bin
如果您需要进行添加操作,您需要将该$PATH片段添加到您的config.fish中。

2
为了未来的增长,使用 set -U fish_user_paths $fish_user_paths $HOME/.composer/vendor/bin 来追加而不是替换。 - glenn jackman
2
注意:不要在config.fish中这样做 - 这会导致$fish_user_paths无限增长。 - faho
使用上述命令,我得到了以下结果:
set: 警告:选择了通用作用域,但存在全局变量 'fish_user_paths'。
- mesqueeb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接