ZSH 中环境变量扩展出错

ZSH 中环境变量扩展出错

运行这些命令:

[$] echo 'export VAR="qwertyuiop"
export VAR="$VAR:asdf=ghjkl"' > /tmp/vars.sh
[$] source /tmp/vars.sh
[$] echo $VAR
/home/saga/qwertyuiopsdf=ghjkl

正如您所看到的,变量替换没有达到我们的预期。这里有什么问题呢?

答案1

冒号在 中充当修饰符zsh。引用这个参考,

在可选字指示符之后,您可以添加一系列一个或多个以下修饰符,每个修饰符前面都有一个“:”。除非另有说明,这些修饰符也适用于文件名生成和参数扩展的结果。

A

将文件名转换为绝对路径:如有必要,在当前目录前面添加(...)

总而言之,它:a充当修饰符并将当前目录添加到VAR扩展值之前。

为了防止修饰符起作用,请将变量括在花括号中:VAR="${VAR}:asdf=ghjkl"

相关内容