检查 PATH 是否包含 $HOME/mydir ,如果不包含则添加它(全部在脚本中)

检查 PATH 是否包含 $HOME/mydir ,如果不包含则添加它(全部在脚本中)

可能的重复:
将重复项保留在源上的 $PATH 之外

我的一些脚本位于$HOME/mydir.不幸的是,如果该目录不是PATH.

我想创建一个小脚本检查是否$HOME/mydirPATH.如果不是,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

相关内容