如何仅在15秒后将命令输出保存到文件中?

时间:2019-03-03 10:19:16

标签: bash shell

我想将命令“ airodump-ng wlan0”的输出保存在一个文件中,但是在启动命令大约15秒之后。我发现了这样的东西:

{ airodump-ng wlan0  sleep 15 ; } 2> log.txt

但是我得到一个错误 “ airodump-ng --help”寻求帮助。

3 个答案:

答案 0 :(得分:1)

我不熟悉airodump及其输出,但是您可以尝试这样的方法,该方法读取其输出并将其丢弃,直到经过15秒:

#!/bin/bash

# Work out time to start output, 15s from now
((tplus15=SECONDS+15))

airodump-ng wlan0 | while read line ; do
   [ $SECONDS -gt $tplus15 ] && echo "$line"
done

如果要将输出存储在文件中,请在最后一个> someFile.txt之后添加done

如果airodump在其stderr上输出,则可能需要在2>&1之后添加airodump-ng wlan0,如下所示:

airodump-ng wlan0 2>&1 | while read ...

答案 1 :(得分:1)

您必须先开始转储,然后等待15秒钟,然后杀死转储。仅在转储命令之后放置睡眠命令,直到airodump完成后才开始睡眠,这不是OP想要的。注意,stderr也来自OP的原始想法。

KEY `idx_ip_from_to` (`ip_from`,`ip_to`,region_name,  city_name, latitude, longitude )

对我来说,这是比@Mark Setchell的解决方案更简单的解决方案。这需要前15秒的输出,而不是像@MarkSetchell的回答那样需要15秒后的输出。

答案 2 :(得分:-3)

#!/bin/bash
sleep 15
airodump-ng wlan0 > test.txt

工作正常,请看