Fish 中的环境变量

Fish 中的环境变量

我需要使用一个名为 Kpax 的程序,“安装”过程如下:

(for bash users, edit ~/.bashrc)
   export KPAX_ROOT=/home/dritchie/kpax       <-  substitute the proper pathname here.

   export PATH=${PATH}:${KPAX_ROOT}/bin

我正在使用 Garuda 和 Fish shell,如果我使用 bash 运行 Kpax 效果很好,问题是我需要从 php 文件运行 Kpax,并且每次使用shell_exec()它都会出现在 error_log 中:

kpax: command not found

有没有办法像bash一样用fish中的环境变量复制这个东西?

答案1

在 Fish shell 3.2 或更高版本中,您可以运行:

fish_add_path /home/dritchie/kpax/bin

替换到您的主目录中。

您可以在命令行运行一次,或者将其添加到~/.config/fish/config.fish;不管怎样,它都会被记住。这是文档鱼添加路径

但是,您可能仍然需要 KPAX_ROOT 环境变量,因此您可能仍然需要设置 -U 该变量。

答案2

根据https://fishshell.com/docs/current/cmds/set.html?highlight=environment

您需要使用 set 命令来设置变量并显式导出它们。

根据https://fishshell.com/docs/current/tutorial.html?highlight=configuration(在文档中深入搜索“Startup (where's .bashrc)”,您需要编辑的文件是 ~/.config/fish/config.fish)

因此,将这两个放在一起,将以下内容添加到现有的 ~/.config/fish/config.fish 的末尾(或者仅创建一个仅包含以下内容的文件,如果该文件尚不存在):

set -gx KPAX_ROOT <your path to KPAX installation>
set -gx PATH $PATH "$KPAX_ROOT"/bin

或者,将所需的变量创建为“通用”可能会更容易:

set -U KPAX_ROOT <path to KPAX installation>
set -U PATH $PATH "$KPAX_ROOT"/bin

(您只需执行一次,并且根据文档,它应该代表您永久更新 Fish)。

我没有也没有使用过鱼,但希望这些对鱼手册的参考和我提供的建议能让您到达您需要的地方。

相关内容