关注this answer in superuser,我在bash中写了这个函数:
_add_env()
{
export $1
if [[ ":\$$1:" != *":$2:"* ]]; then
eval $1="\$$1:$2";
fi
};
我这样称呼:_merge_env PATH“/ home / subway / land”
即使PATH包含给定路径,似乎条件为真。
以下是相关的bash -x输出:
我做错了什么?
答案 0 :(得分:1)
"\$$1"
未评估为$ PATH的内容,而是评估为$PATH
。使用变量间接:
[[ ":${!1}:" != *":$2:" ]]