基本 Bash - 使用布尔运算符的 If/Then

基本 Bash - 使用布尔运算符的 If/Then

如你所见,我设置了一个简单的脚本来 ping google(8.8.8.8),它应该会回复“Good Ping”

if [ "ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2" == '64' ];  then echo "Good Ping"; fi

但它从不回应

同时我可以运行:

ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2

这可以毫无问题地解析为“64”

我不明白顶部脚本永远不会打印“Good Ping”,有人可以解释一下吗?

答案1

字符串ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2永远不会等于 64,但这就是您要测试的内容。如果您想测试命令,请使用命令替换:

if [ $(ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2) == 64 ] ; then
    echo Good Ping
fi

`...`可以代替 来使用$(...)

相关内容