在我的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
有没有办法启动第一个命令导致停止的原因,恢复输出并终止该命令而不停止脚本?
答案 0 :(得分: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) }')
用管子做一个简单的回声就行了! :)