如何将“软附加”目录添加到$ PATH?

时间:2015-11-02 01:13:32

标签: bash environment-variables

假设echo $PATH生成/first/path:/second/path:/third/path,但您 - 作为脚本编写者 - 不知道这一点。也就是说,您的目标是使用$PATH附加$PATH1的内容。现在$PATH1可能与$PATH重叠,也可能不重叠(例如:$PATH$PATH1可能共享/second/path

问题:如何实现PATH=$PATH:$PATH1的效果,但避免上面讨论的重复问题?

1 个答案:

答案 0 :(得分:2)

这会将path1添加到PATH的末尾,但前提是它不是重复的:

case ":${PATH:=$path1}:" in
    *:$path1:*)  ;;
    *) PATH="$PATH:$path1"  ;;
esac

这是POSIX,因此便携。

请注意,我使用path1变量的小写字母。系统变量都是大写的。为避免意外覆盖,最好使用较低或混合大小写的个人变量。