如果在fishshell中还没有PYTHONPATH目录,则向PYTHONPATH添加目录

bpzcxfmw  于 2023-05-18  发布在  Shell
关注(0)|答案(1)|浏览(107)

我想永久地添加一个目录路径到PYTHONPATH,如果它还没有,问题。理想情况下,我希望不编辑~/.config/fish/config.fish
对于PATH,find_add_path -m -v执行此操作(检查路径是否已经进入userpath,如果没有添加它),但我不知道PYTHONPATH的等效命令。
我正在考虑使用set与“通用变量”选项,但我想先检查一下新目录是否已经存在。
我该怎么做这张支票?还有别的办法吗

2w3kk1z5

2w3kk1z51#

要检查变量是否不包含某个值,可以使用contains,如下所示:

if not contains -- /path/to/wherever $PYTHONPATH
    # do something
end

# or, for short
contains -- /path/to/wherever $PYTHONPATH
or # do something

要向$PYTHONPATH添加值,请使用set,如下所示

set PYTHONPATH $PYTHONPATH /path/to/wherever
# or with `-a`/`--append`:
set -a PYTHONPATH /path/to/wherever

您可以合并这两个组合并将其放入config.fish:

contains -- /path/to/wherever $PYTHONPATH
or set -a PYTHONPATH /path/to/wherever

这是fish_add_path所做的事情的基本思想--它只是添加了一些像--move那样的花里胡哨。
find_add_path -m -v执行此操作(检查路径是否已经进入用户路径,如果没有添加)
它是 fish_add_path,-m选项(--move的缩写)告诉它 * 移动 * 值(如果它已经包含在它应该放置的位置)。
例如,如果你有一个变量/bin /my/path,你做了fish_add_path --move /my/path,这将成为/my/path /bin。如果没有--move,它将什么都不做,并将其留在/bin /my/path
我会提醒大家不要在这里使用通用变量,因为它们与导出的交互效果很差。
我建议把它放在config.fish中。

相关问题