我已经看到很多解决方案来解决我的问题 - 每5秒运行一次脚本。
除此之外,我还希望它只运行2分钟。
脚本的目的是在特定位置对RSSI进行一段时间的采样:
#!/bin/bash
RSSI_CSV=$1
DISTANCE=$2
RSSI=$(iwconfig wlan0 | awk -F'[ =]+' '/Signal level/ {print $7}\')
printf "$DISTANCE,$RSSI\n" >> $RSSI_CSV
在命令行中调用它:
sh rssi_script.sh output.csv position
解决我的问题最有效的解决方案是什么?
我考虑过的可能性:
如果有任何我错过或有帮助的信息,请告诉我,并感谢任何人可以给予的任何帮助。
答案 0 :(得分:0)
#!/bin/bash
[ "$3" = "0" ] && { exit; }
RSSI_CSV=$1
DISTANCE=$2
RSSI=$(iwconfig wlan0 | awk -F'[ =]+' '/Signal level/ {print $7}\')
printf "$DISTANCE,$RSSI\n" >> $RSSI_CSV
sleep 5
N=$3
$0 $1 $2 $((N-1))
像这样跑:
sh rssi_script.sh output.csv position 24
答案 1 :(得分:0)
受到PeterMmm的投入的启发,我设法让它发挥作用,事实上,对我来说,运行N个样本并在它们之间进行硬编码休息会更好
#!/bin/bash
RSSI_CSV=$1
DISTANCE=$2
N=$3
while [ $N -ne 0 ]
do
RSSI=$(iwconfig wlan0 | awk -F'[ =]+' '/Signal level/ {print $7}\')
printf "$DISTANCE,$RSSI\n" >> $RSSI_CSV
sleep 2
((N--))
echo $N
done
exit