使用/ 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@H_404_4@
真的很简单和天真:
echo "$PATH"|grep -q whatever && echo "found it"@H_404_4@哪里是你正在寻找什么。代替&&你可以把$?转换为变量或使用适当的if语句。
限制包括:
>上面将匹配较大路径的子串(尝试在“bin”匹配,它可能会找到它,尽管“bin”不在你的路径,/ bin和/ usr / bin的事实)
>上面的不会自动展开像〜的快捷键或者使用perl单行:
perl -e 'exit(!(grep(m{^/usr/bin$},split(":",$ENV{PATH}))) > 0)' && echo "found it"@H_404_4@仍然有一个限制,它不会做任何shell扩展,但是如果一个子字符串匹配,它不会失败。 (上面的匹配“/ usr / bin”,如果不清楚)。