簡體   English   中英

Bash腳本在grep語句上終止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM