我正在管理一个WiFi网络,它有多个中继器(接入点)。
我已经做了一个脚本,统计每一个连接用户的数量。AP 1和2的例子:
luis@Fresoncio:~/Temporal/ClientesActivos$ ./ClientesActivos-AP-N.sh 1
3
luis@Fresoncio:~/Temporal/ClientesActivos$ ./ClientesActivos-AP-N.sh 2
10但它有点的慢。AP 3的例子:
luis@Fresoncio:~/Temporal/ClientesActivos$ time ./ClientesActivos-AP-N.sh 3
5
real 0m7.074s
user 0m0.040s
sys 0m0.040s因此,只要我有超过10个AP,我想并行所有的读数。我已经编写了另一个脚本,在后台中调用各个请求。类似于:
AP-1=$(./ClientesActivos-AP-N.sh 1) &
AP-2=$(./ClientesActivos-AP-N.sh 2) &
AP-3=$(./ClientesActivos-AP-N.sh 3) &
... etc
sleep 20 # Wait 20 seconds for all readings to finish.
echo "$AP-1, $AP-2, $AP-3... etc"但这似乎行不通。至少在shell测试中:
luis@Fresoncio:~/Temporal/ClientesActivos$ echo $a
luis@Fresoncio:~/Temporal/ClientesActivos$ a=$(./ClientesActivos-AP-N.sh 4)
luis@Fresoncio:~/Temporal/ClientesActivos$ echo $a
6
luis@Fresoncio:~/Temporal/ClientesActivos$ unset a
luis@Fresoncio:~/Temporal/ClientesActivos$ echo $a
luis@Fresoncio:~/Temporal/ClientesActivos$ a=$(./ClientesActivos-AP-N.sh 4) &
[1] 13527
[A few minutes later...]
luis@Fresoncio:~/Temporal/ClientesActivos$ echo $a
[1]+ Done a=$(./ClientesActivos-AP-N.sh 4)我做错了什么?在shell脚本中并行化单个行的方法是什么?背景处理是正确的方法吗?
进一步数据:
发布于 2016-05-29 15:25:36
https://stackoverflow.com/questions/37511598
复制相似问题