我不确定为什么这不起作用。 (我研究过它并没有发现任何东西。)
我正在尝试ping IP并获得结果。然后从结果中获取平均时间和数据包丢失
PING=$(ping -c $AMOUNT -s $SIZE $IP)
AVG_TIME=$($PING | tail -1 | awk '{print $4}' | cut -d '/' -f 2)
PACKET_LOSS=$($PING | grep -oP '\d+(?=% packet loss)')
错误:
PING:找不到命令
如果我将PING命令放在其他每个命令中,它就有效,但这意味着它会ping一次,而不是从一个ping结果中获取值。
我已经多次过了,但我想我在这里错过了什么。
答案 0 :(得分:3)
您想从ping命令获取输出。所以改成它:
AVG_TIME=$(echo "$PING" | tail -1 | awk '{print $4}' | cut -d '/' -f 2)
PACKET_LOSS=$(echo "$PING" | grep -oP '\d+(?=% packet loss)')
注意上面的echo
命令。
使用当前代码,它试图执行第一个命令的输出,这不是你想要的。