Bash循环不起作用 - 找不到命令"[0%"

-1 linux bash loops

我今天早上刚刚在Bash写了一个ping扫描脚本,猜猜是什么:它不起作用.你可以检查一下我错过了什么.

这是脚本:

for i in `seq 1 255`
do
    if ["$(ping -c1 -W1 -n 192.168.1.$i | grep '%' | cut -d',' -f3 | cut -d' ' -f2)" -eq "0%"]
    then echo "Host live"
    else echo "Host down"
    fi
done
Run Code Online (Sandbox Code Playgroud)

这是错误:

bash: [0%: command not found
Host down
bash: [100%: command not found
Host down
Run Code Online (Sandbox Code Playgroud)

我的目的是制作ping扫描程序,扫描范围192.168.1.1-255并通知主机的状态.我知道nmap,但只想学习Bash的技能,所以我做了这个.请尝试告诉错误的含义.我的意思是什么命令它指的是"命令未找到"?

小智 5

ping如果有任何问题,该命令将返回错误代码,因此您无需解析输出:

for i in {1..255}
do
  if ping -c1 -W1 -n "192.168.1.$i"
  then
    echo 'Host live'
  else
    echo 'Host down'
  fi
done
Run Code Online (Sandbox Code Playgroud)