使用/ bin / bash,如何检测用户在$ PATH变量中是否有特定目录?
例如
if [ -p "$HOME/bin" ]; then echo "Your path is missing ~/bin,you might want to add it." else echo "Your path is correctly set" fi
真的很简单和天真:
原文链接:https://www.f2er.com/bash/389768.htmlecho "$PATH"|grep -q whatever && echo "found it"
哪里是你正在寻找什么。代替&&你可以把$?转换为变量或使用适当的if语句。
限制包括:
>上面将匹配较大路径的子串(尝试在“bin”匹配,它可能会找到它,尽管“bin”不在你的路径,/ bin和/ usr / bin的事实)
>上面的不会自动展开像〜的快捷键
或者使用perl单行:
perl -e 'exit(!(grep(m{^/usr/bin$},split(":",$ENV{PATH}))) > 0)' && echo "found it"
仍然有一个限制,它不会做任何shell扩展,但是如果一个子字符串匹配,它不会失败。 (上面的匹配“/ usr / bin”,如果不清楚)。