如何将目录添加到 $PATH 但前提是该目录尚不存在

voi*_*ces 2 linux bash shell scripting

我正在编写一个脚本来解决我经常遇到的问题。

/sbin路径中缺少问题之一。但情况并非总是如此,因此不要像这样不加区别地将其添加到.profile.bash_profile.bashrc等中:

echo "export PATH=\"$PATH:/sbin\"" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

..随着时间的推移,最后会出现多个export PATHs :/sbin:/sbin:/sbin:/sbin:/sbin... 好吧,你明白了。我该如何处理这个问题?

rua*_*akh 7

这是一种方法:

echo '[[ ":$PATH:" == *:/sbin:* ]] || PATH="$PATH:/sbin"' >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

export(请注意,顺便说一句,在更新已经是环境变量的内容时,您不需要, 。)


怎么运行的:

  • @MadPhysicist:不;你可以自己尝试一下。根据文档,“export”标记要传递给子进程的函数或变量;它*不*专门标记其当前值。如果在“导出”后继续更改变量的值,那么您将继续更改传递给子流程的内容。 (2认同)