小编S.I*_*.I.的帖子

for 循环 bash 脚本中的两个 if 条件

我试图在 for 循环中创建两个 if 条件。这可能吗?现在不从 first返回任何第二个if只有两个。OKif

#!/bin/bash
servers=("212.39.82.157" "212.39.82.157" "1.1.1.1")

for i in "${servers[@]}"; do

ping -c 1 $i > /dev/null 
  if [ $? -eq 0 ]; then
     echo "OK"  
  fi

  if [ $(netstat -na | grep ':3708' | grep ESTABLISH | wc -l) -eq 2 ]; then
     echo "NOT - OK"
  fi
done
Run Code Online (Sandbox Code Playgroud)

对于IP列表中的第三个必须返回,NOT - OK因为它不在线。但输出是这样的

root@ubuntu:~$ ./check.sh
OK
OK
root@ubuntu:~$
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

更新:

 #!/bin/bash
servers=("212.39.82.157" "212.39.82.157" "1.1.1.1")

for i in "${servers[@]}"; …
Run Code Online (Sandbox Code Playgroud)

bash shell-script

5
推荐指数
1
解决办法
4万
查看次数

标签 统计

bash ×1

shell-script ×1