如果与netcat的连接成功,我该如何停止我的脚本?
例如,如果Connection to 192.168.2.4 21 port [tcp/ftp] succeeded!
我不确定该文本字符串是什么。
#!/bin/bash
#Find first 3 octets of the gateway and set it to a variable.
GW=$(route -n | grep 'UG[ \t]' | awk '{print $2}' | cut -c1-10)
#loop through 1 to 255 on the 4th octect
for octet4 in {1..255}
do
sleep .2
nc -w1 $GW$octet4 21
done
答案 0 :(得分:0)
您可以测试nc
退出状态。
例如:
nc -w1 $GW$octet4 21
[[ "$?" -eq 0 ]] && exit
如果命令nc
成功并返回零退出状态,该状态隐式存储在$?
shell变量中,exit
脚本。如果您想跳出循环,请仅使用break
代替exit
。
答案 1 :(得分:0)
您可以使用nc
的返回码,然后在等于0时中断。这是一个示例脚本,它会一直迭代,直到它击中谷歌DNS服务器IP 8.8.8.8
然后中断。
#!/bin/bash
for i in {1..10}; do
sleep 1;
echo Trying 8.8.8.$i
nc -w1 8.8.8.$i 53
if [ $? == 0 ]; then
break
fi
done
您的脚本如下所示:
#!/bin/bash
#Find first 3 octets of the gateway and set it to a variable.
GW=$(route -n | grep 'UG[ \t]' | awk '{print $2}' | cut -c1-10)
#loop through 1 to 255 on the 4th octect
for octet4 in {1..255}
do
sleep .2
nc -w1 $GW$octet4 21
if [ $? == 0 ]
then
break
fi
done