在命令的输出中搜索字符串

在命令的输出中搜索字符串

我被一个简单的脚本困住了。我想tracepath在多个地址上运行并查找 .ipt 文件的输出中是否包含某些 IP tracepath。现在我有以下内容:

if tracepath -n google.com | grep x.x.x.x 
do 
echo bal bal 
else 
echo ova ova ova
fi

但这行不通。

答案1

尝试这个语法,我认为你不想要 的输出grep,所以我们使用-q(quiet) 开关:

(traceroute -n google.com | grep -q x.x.x.x) && echo "Yes" || echo "Nope"

或者用这样的if语句:

if (traceroute -n google.com | grep -q x.x.x.x)
then
  echo "Yes"
else
 echo "Nope"
fi

答案2

您的语法错误,if条件之后应该是then,而不是do

tracepath -n google.com | grep x.x.x.x
if [ $? -eq 0 ]
then
echo "bal bal" 
else
echo "ova ova ova"
fi

相关内容