我是bash脚本的新手,我正尝试将csv文件的while读取循环中的变量传递到命令中,如下所示,但是变量似乎未正确传递。
我知道该命令是正确的,因为我已使用硬编码值对其进行了测试。
有人可以告诉我如何正确地将f1 f3等传递到{命令}吗?
while read f1 f3 f5
do
#filename = $bootydir+"/"+$f1
#echo $filename
{ timeout 20 airodump-ng -a -w bob --bssid $f1 --channel $f3 --output-format cap --write-interval 1 wlan0mon; } &
PID=$!
echo "xterm"
xterm -e "aireplay-ng --deauth 20 -a $f1 wlan0mon;"
sleep 20
#kill scan
kill -TERM $PID
done < $bootydir/sorted.csv
答案 0 :(得分:0)
while read f1 f3 f5
无法读取CSV文件。您将需要while IFS=, read f1 f3 f5
或(更好的一种)具有实际CSV解析库的编程语言。while
循环中误吞标准输入,应使用while read -u 3 … done 3< …
。{ timeout 20 …; } &
可以简单地是timeout 20 … &
。 timeout 20
在20秒后杀死? timeout 20
已在20秒后发送SIGTERM。答案 1 :(得分:0)