繁体   English   中英

将我的 bash 脚本中的 output 存储在 a.txt 文件中

[英]Store output from my bash script in a .txt file

我想将我的脚本的 output 存储在一个文件中,但不能。

这是:

#!/bin/bash

if [ "$1" == "" ]
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 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee ip.txt &
done
fi

问题是创建的文件没有数据。 它是空白的。

要快速回答您的问题,只需替换您最后的 pipe ... -d ":" | tee ip.txt & ... -d ":" | tee ip.txt &... -d ":" >> ip.txt &

  • >>语法将 append 到ip.txt 您也可以使用tee -a到 append 但这也会打印到标准输出。
  • 如果您想确保每次运行脚本时都清除该文件,您需要: > ip.txt在脚本顶部清除ip.txt

这是您的新脚本可能的样子:

#!/bin/bash

if [ "$1" == "" ]; 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 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" | tee -a ip.txt &
    done
fi

不过,我对这个脚本有很多话要说。 看起来您正在尝试对某个范围内的所有 ip 地址进行 ping 操作,以测试它们是否处于启动/活动状态。 您可能想查看nmap

例如nmap -sP 192.168.1.1-254

您在每次调用 tee 时都会覆盖 ip.txt。

尝试调用 tee -a 到 append。

男士三通了解详情

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM