假设echo $PATH
生成/first/path:/second/path:/third/path
,但您 - 作为脚本编写者 - 不知道这一点。也就是说,您的目标是使用$PATH
附加$PATH1
的内容。现在$PATH1
可能与$PATH
重叠,也可能不重叠(例如:$PATH
和$PATH1
可能共享/second/path
。
问题:如何实现PATH=$PATH:$PATH1
的效果,但避免上面讨论的重复问题?
答案 0 :(得分:2)
这会将path1
添加到PATH
的末尾,但前提是它不是重复的:
case ":${PATH:=$path1}:" in
*:$path1:*) ;;
*) PATH="$PATH:$path1" ;;
esac
这是POSIX,因此便携。
请注意,我使用path1
变量的小写字母。系统变量都是大写的。为避免意外覆盖,最好使用较低或混合大小写的个人变量。