0

在我的 Bash 脚本中,我必须启动一个命令 ( aircrack-ng) 来恢复 var 中的输出以供以后使用。目标是解析.cap文件的输出,以了解是否存在某种数据(WPA 网络的握手)。

问题是此命令有时(取决于您要解析的文件)停止提示用户选择一个选项。如果文件只有来自一个网络的数据,它不会停止。如果文件有不同的网络数据,它将停止。

我已经解析了命令的输出,但问题是脚本停止了。我会在启动后立即终止命令并将输出恢复到 var 并且不希望脚本停止。

我试图在最后用 & 启动它以在后台运行然后杀死它,但它还是停止了。

nets_from_file=$(aircrack-ng /path/to/somefile.cap 2> /dev/null | egrep "WPA \(1" | awk '{ saved = $1; $1 = ""; print substr($0, 2) }' &)

kill -9 $(ps aux | grep aircrack-ng | grep -v "grep" | awk '{print$2}') > /dev/null 2>&1

有没有办法在不停止脚本的情况下启动第一个导致停止的命令、恢复输出并终止该命令?

4

1 回答 1

0

哇……我​​找到了!头痛后非常简单......

nets_from_file=$(echo "1" | aircrack-ng /path/to/somefile.cap 2> /dev/null | egrep "WPA \(0"  | awk '{ saved = $1; $1 = ""; print substr($0, 2) }')

使用管道之前的简单回声就可以了!:)

于 2016-04-23T11:51:20.910 回答