如何编写一个bash脚本,使用for循环调用echo >/dev/tcp/IP地址/端口 命令,并将每次执行的结果逐行追加到list.txt文件中?
时间: 2024-11-06 19:16:33 浏览: 7
一个简单的Bash脚本示例,该脚本用于检查Nginx服务的状态,并根据服务状态执行相应的操作(如启动、停止或重启Nginx)
在bash脚本中,你可以使用`for`循环结合管道(`|`)和命令重定向(`>`), 来实现这个功能。假设你想连接到一系列的IP地址和端口,下面是一个示例脚本:
```bash
#!/bin/bash
# 定义要连接的目标列表,这里仅作为示例,实际应用中应替换为真实的IP和端口组合
targets=("192.168.1.1:1234" "10.0.0.5:5678" "192.168.2.3:9000")
# 创建一个空的日志文件,如果不存在则创建
> list.txt
# 使用for循环遍历目标列表
for target in "${targets[@]}"; do
# 使用echo命令将空字符写入指定的TCP连接,然后将其输出重定向到list.txt
echo -n > /dev/tcp/${target} &
# 等待前一次操作完成后再进行下一次,这里使用wait命令
wait
# 将当前操作的输出追加到list.txt,注意前面的-eq是为了消除换行符
echo "$(date) - Connected to $target" >> list.txt
done
# 结束脚本
echo "Script finished."
```
运行此脚本后,它会尝试连接每个IP地址和端口,并将连接成功的时间戳记录到`list.txt`中。
阅读全文