我已经看到了很多解决我一半问题的方法——每 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
解决我的问题的最强大的解决方案是什么?
我考虑过的可能性:
- 在自身内部重复脚本 40 次(测量 RSSI 40 次并将其输出到 CSV 40 次,整个实验中的位置将相同)这也将解决将运行时间限制为 2 分钟的问题。我可能会添加一些新的命令行参数,如果我每次都必须更改 40 个变体,这些参数可能很难跟踪
- 使用 watch 每 5 秒采样一次,使用 cron 将其限制为 2 分钟(不是 100% cron 可以做到这一点)
- 2 分钟的 while 循环(不知道如何做这样的 while 循环?),每个循环结束时睡眠 5 秒
- 使用 cron 将 shell 脚本作为脚本的 40 个进程启动,并将每次迭代延迟 5 秒,我不确定命令行参数将如何传递,正如我上面所说,我可能会添加一些新的命令行参数,这样可以导致问题(额外工作)
让我知道是否有任何我错过的信息或有帮助的信息,并感谢任何人提供的任何帮助。