gpt4 book ai didi

linux - Bash 脚本终止于 grep 语句

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:06 25 4
gpt4 key购买 nike

无法理解为什么我的 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 ]];

关于linux - Bash 脚本终止于 grep 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com