![XDG_DATA_DIRS env变量在fish shell中使用两种分隔符类型](https://linux22.com/image/200838/XDG_DATA_DIRS%20env%E5%8F%98%E9%87%8F%E5%9C%A8fish%20shell%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%B8%A4%E7%A7%8D%E5%88%86%E9%9A%94%E7%AC%A6%E7%B1%BB%E5%9E%8B.png)
进行操作系统升级(opensuse Leap 15.2 -> 15.3)后,我的 XDG 设置崩溃了。除此之外,我的XDG_DATA_DIR
环境变量使用两个不同的值分隔符::
和。
当前 XDG_DATA_DIRS 值:
/home/bernard/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop /var/lib/snapd/desktop
在查找填充此变量的代码时,我遇到了 中的脚本/etc/profile.d/
,但从调试该snapd.sh
脚本来看,它似乎并没有导致缺陷。我修改snapd.sh
并将变量打印到/tmp/var
脚本开始和脚本结束处。通过观察结果,看起来这个脚本没有改变XDG_DATA_DIRS
.
快照版本:2.54.1
鱼版:3.3.1
答案1
我不知道这个点:我想你必须深入研究哪个进程添加了它。
不过,最后一个由空格分隔的目录元素很能说明问题。看来您正在向 Fish 中的 XDG_DATA_DIRS 添加一个目录,并期望子进程获得以冒号分隔的值。 Fish 仅自动执行此操作路径变量。
在您的 Fish 配置中,在对该变量进行任何操作之前尝试以下操作:
set --path -x XDG_DATA_DIRS $XDG_DATA_DIRS