可能的重复:
将重复项保留在源上的 $PATH 之外
我的一些脚本位于$HOME/mydir
.不幸的是,如果该目录不是PATH
.
我想创建一个小脚本检查是否$HOME/mydir
是PATH
.如果不是,PATH
则应使用它和 进行更新EXPORTED
。
我的问题是:我可以使用哪个命令来检查是否$HOME/mydir
是 的一部分PATH
?谢谢。
解决方案
作为记录,我执行了以下操作:
echo "Before: $PATH"
echo $PATH | grep -q "$HOME/scripts"
if [ $? -eq 0 ]; then
PATH=$PATH:$HOME/scripts
export PATH
else
export PATH
fi
echo ""
echo "After: $PATH"
答案1
我会写
case ":$PATH:" in
*:$HOME/mydir:*) echo it is in the path;;
*) echo not there ;;
esac
我编写“:$PATH:”以确保所需路径位于 $PATH 中的第一个或最后一个时模式匹配。
答案2
您可以编写一个简单的 bash 脚本来执行类似的操作。
echo $PATH | grep -q "/your/search/path"
然后检查是否 $?不为0,表示不匹配,如果是则添加路径
export PATH=$PATH:/your/search/path