将我的 bash 脚本的输出存储在 .txt 文件中
Store output from my bash script in a .txt file
我想将我的脚本的输出存储在一个文件中,但是不能。
这是:
#!/bin/bash
if [ "" == "" ]
then
echo "Te falta especificar una dirección ip"
echo "Syntax esperado: ./hostDiscovery.sh <ip>"
else
for ip in `seq 1 254`; do
ping -c 1 .$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee ip.txt &
done
fi
问题是创建的文件没有数据。它是空白的。
每次调用 tee 时,您都在覆盖 ip.txt。
尝试调用 tee -a 进行追加。
男士 T 恤了解详情
要快速回答您的问题,只需将最后一个管道 ... -d ":" | tee ip.txt &
替换为 ... -d ":" >> ip.txt &
>>
语法将附加到 ip.txt。您也可以使用 tee -a
追加,但这也会打印到标准输出。
- 如果您想确保每次 运行 脚本时都清除该文件,您需要:
> ip.txt
在脚本顶部清除 ip.txt.
您的新脚本可能如下所示:
#!/bin/bash
if [ "" == "" ]; then
echo "Te falta especificar una dirección ip"
echo "Syntax esperado: ./hostDiscovery.sh <ip>"
else
> ip.txt
for ip in `seq 1 254`; do
ping -c 1 .$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee -a ip.txt &
done
fi
虽然我对这个剧本有很多话要说。看起来您正在尝试 ping 一个范围内的所有 IP 地址以测试它们是否 up/alive。您可能需要查看 nmap
例如nmap -sP 192.168.1.1-254
我想将我的脚本的输出存储在一个文件中,但是不能。
这是:
#!/bin/bash
if [ "" == "" ]
then
echo "Te falta especificar una dirección ip"
echo "Syntax esperado: ./hostDiscovery.sh <ip>"
else
for ip in `seq 1 254`; do
ping -c 1 .$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee ip.txt &
done
fi
问题是创建的文件没有数据。它是空白的。
每次调用 tee 时,您都在覆盖 ip.txt。
尝试调用 tee -a 进行追加。
男士 T 恤了解详情
要快速回答您的问题,只需将最后一个管道 ... -d ":" | tee ip.txt &
替换为 ... -d ":" >> ip.txt &
>>
语法将附加到 ip.txt。您也可以使用tee -a
追加,但这也会打印到标准输出。- 如果您想确保每次 运行 脚本时都清除该文件,您需要:
> ip.txt
在脚本顶部清除 ip.txt.
您的新脚本可能如下所示:
#!/bin/bash
if [ "" == "" ]; then
echo "Te falta especificar una dirección ip"
echo "Syntax esperado: ./hostDiscovery.sh <ip>"
else
> ip.txt
for ip in `seq 1 254`; do
ping -c 1 .$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee -a ip.txt &
done
fi
虽然我对这个剧本有很多话要说。看起来您正在尝试 ping 一个范围内的所有 IP 地址以测试它们是否 up/alive。您可能需要查看 nmap
例如nmap -sP 192.168.1.1-254