0

按照superuser 中的这个答案,我在 bash 中编写了该函数:

_add_env()
{
    export $1
    if [[ ":\$$1:" != *":$2:"* ]]; then
            eval $1="\$$1:$2";
    fi
};  

我这样称呼它:_merge_env PATH "/home/subway/land"

即使 PATH 包含给定的路径,条件似乎也是正确的。

这是相关的 bash -x 输出:

  • 第579
  • 第580章

我究竟做错了什么?

4

1 回答 1

1

"\$$1"不评估为 $PATH 的内容,而是评估为$PATH. 使用变量间接:

[[ ":${!1}:" != *":$2:" ]]
于 2013-01-07T13:54:38.067 回答