如何验证变量



我创建了以下脚本

for i in $(ls /home/test);
do health=$(curl -s http://192.168.1.100/api/stream_health/$i);
if [ $health = "true" ]
then echo "At `date` $i stream is running"
else
ps aux | grep -v grep | grep $(cat /root/bin/xproxy.conf | grep "$i" | cut -f3 -d":" | cut -c1-5) | awk '{print $2}' | xargs kill -9
fi
done;

问题是,当$ i(如果在/root/bin/xproxy.conf中找不到)时,则使用grep error命令退出脚本。我将如何提出某种验证,如果在/root/bin/xproxy.conf中找不到$ i,然后跳过此循环,然后转到下一个循环。

这应该做:

[[ $(grep $i /root/bin/xproxy.conf ]] || continue

1)GREP可以在文件中找到:grep expresion file。因此,您无需使用:cat file | grep expresion

2.a)您可以使用& amp;操作员,可以将其解释为" 如果上一个命令是成功(真正退出代码= 0)然后 concont

grep $i /root/bin/xproxy.conf && ps aux | grep -v grep | grep $(grep "$i" /root/bin/xproxy.conf  | cut -f3 -d":" | cut -c1-5) | awk '{print $2}' | xargs kill -9

2.b)其他方式在用特殊变量对GREP表示辩解后要求退出代码?:

grep $i /root/bin/xproxy.conf &>/dev/null
if [ $? = 0 ]
then
    ps aux | grep -v grep | grep $(grep "$i" /root/bin/xproxy.conf  | cut -f3 -d":" | cut -c1-5) | awk '{print $2}' | xargs kill -9
fi

相关内容

  • 没有找到相关文章