我注意到
set -xg PYTHONPATH "/path/to/dir1"
set -xg PYTHONPATH $PYTHONPATH "/path/to/dir2"
有效,而
set -xg PYTHONPATH "/path/to/dir1 /path/to/dir2"
不起作用,尽管两种方法似乎都产生相同的 PYTHONPATH 值:
>>> echo $PYTHONPATH
/path/to/dir1 /path/to/dir2
>>>
因此,如果 PYTHONPATH 的“可见”值相同,那么底层存在的实际差异是什么?
答案1
当您在两行上添加到 PYTHONPATHS 时,set
正在处理它并且它知道有两个项目:这将起作用。
当您在一行上添加到 PYTHONPATHS 时,您包含了一个空格,set
正在处理它,但它不会改变给定的单个项目并且您最终会得到一个带有空格的项目:不起作用。
所有变量fish
都是列表:“多行”方式为您提供列表中带有 2 个项目的 1 个变量,而“单行”方式为您提供列表中带有 1 个项目的 1 个变量,其中该 1 个项目有一个空格。
出现这种情况时echo
:在一种情况下,它显示“多个项目”之间的空格,在另一种情况下,它显示“单个项目”中的空格:这一切都是正常的。