shell 如何在bash脚本输出字符串中搜索子字符串?如果我直接在字符串中搜索它是工作的,但在命令输出中搜索时会出现问题

uyto3xhc  于 2023-08-07  发布在  Shell
关注(0)|答案(1)|浏览(117)

如何在bash脚本输出中搜索子字符串?如果我直接在字符串中搜索它是工作的,但在命令输出中搜索时会出现问题。

variable="ping: test.com: Name or service not known"

if [[ "$variable" =~ "not" ]]  
then
    echo "Failed"
else
    echo "Success"
fi

字符串
这一个是工作。
但我正在努力做到这一点:

variable=$(multipass exec genesis -- ping -c 1 test.com)

if [[ "$variable" =~ "not" ]]  
then
    echo "Failed"
else
    echo "Success"
fi


但是这样不行。。
终端输出:

$ sh test3.sh
ping: test.com: Name or service not known
Success


我期待着失败…
我想我需要以不同的方式处理变量中的ping输出?

bbmckpt7

bbmckpt71#

为什么要解析输出?可能还有许多其他错误您无法捕获。不如这样做。

#! /bin/bash

if multipass exec genesis -- ping -c 1 test.com; then
    echo "Success"
else
    echo "Failed"
fi

字符串

相关问题