如何在文件中保存15秒后输出命令?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在文件中保存15秒后输出命令?相关的知识,希望对你有一定的参考价值。
我想将命令'airodump-ng wlan0'的输出保存在一个文件中,但是在命令启动后大约15秒之后。我找到了这样的东西:
{ airodump-ng wlan0 sleep 15 ; } 2> log.txt
但我得到一个错误“airodump-ng --help”寻求帮助。
答案
我不熟悉airodump
及其输出,但你可以尝试这样的东西读取它的输出并丢弃它直到15s已经过去:
#!/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 ...
另一答案
你必须启动转储,然后等待15秒,然后杀死转储。只需在dump命令之后放入sleep命令就不会在airodump完成之后开始睡眠,这不是OP想要的。另请注意,stderr来自OP最初的想法。
#!/bin/sh
airodump-ng wlan0 2> log.txt &
sleep 15
kill %1
对我来说,这是一个比@Mark Setchell更简单的解决方案 这需要前15秒的输出,而不是15秒后的输出,因为@MarkSetchell的答案确实如此。
另一答案
#!/bin/bash
sleep 15
airodump-ng wlan0 > test.txt
它工作请看看
以上是关于如何在文件中保存15秒后输出命令?的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
Linux Shell 脚本:将命令输出保存在变量/文件中?