[英]Bash script terminates on grep statement
無法理解為什么我的bash腳本突然終止
echo "Checking for ANY QUERY"
dig +short $MYHOSTWITHOUTWWW any | tr '[A-Z]' '[a-z]' > $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquery.txt
ANYQUERY_STATUS=`grep -iwo 'disabled' $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquery.txt`
if [[ "$ANYQUERY_STATUS" = "disabled" ]];
then
echo "disabled" > $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquerybug.txt
else
echo "enabled" > $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquerybug.txt
fi
echo "Checking for Generic top level domains availabilty"
touch $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-domain-gtld.txt
但是,該程序在'ANYQUERY_STATUS =`grep -iwo'disabled'語句處停止並退出。 它不會執行腳本的其余部分。
在這里,任何幫助將不勝感激。
grep
命令將返回退出狀態1,以指示何時沒有匹配的行,這將導致變量分配失敗。 最好直接在腳本中執行命令,然后使用$?
。
更改腳本的邏輯,以便您可以直接使用狀態:
grep -iwo 'disabled' $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquery.txt
if [[ $? = 0 ]];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.