我想永久地添加一个目录路径到PYTHONPATH,如果它还没有,问题。理想情况下,我希望不编辑~/.config/fish/config.fish对于PATH,find_add_path -m -v执行此操作(检查路径是否已经进入userpath,如果没有添加它),但我不知道PYTHONPATH的等效命令。我正在考虑使用set与“通用变量”选项,但我想先检查一下新目录是否已经存在。我该怎么做这张支票?还有别的办法吗
set
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中。
fish_add_path
--move
-m
/bin /my/path
fish_add_path --move /my/path
/my/path /bin
1条答案
按热度按时间2w3kk1z51#
要检查变量是否不包含某个值,可以使用contains,如下所示:
要向$PYTHONPATH添加值,请使用
set
,如下所示您可以合并这两个组合并将其放入config.fish:
这是
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中。