Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从grep到计数范围变量Bash OpenWRT的行计数_Bash_Grep_Openwrt - Fatal编程技术网

从grep到计数范围变量Bash OpenWRT的行计数

从grep到计数范围变量Bash OpenWRT的行计数,bash,grep,openwrt,Bash,Grep,Openwrt,我正在尝试获取0..格式的范围,以便在for循环中使用。我现在有这个,但它没有抓住正确的计数。我正在尝试在OpenWRT上运行这个 count=echo $(( ${grep -c BSS /tmp/ScannedAPs.txt} - 1 )) 错误:${grep-cbss/tmp/ScannedAPs.FLT}:错误替换 range="0..$count" echo "Count:" echo "$count" echo "Time for range" echo "$range" fo

我正在尝试获取0..格式的范围,以便在for循环中使用。我现在有这个,但它没有抓住正确的计数。我正在尝试在OpenWRT上运行这个

count=echo $(( ${grep -c BSS /tmp/ScannedAPs.txt} - 1 ))
错误:
${grep-cbss/tmp/ScannedAPs.FLT}:错误替换

range="0..$count"

echo "Count:"
echo "$count"
echo "Time for range"
echo "$range"

for index in $(eval echo "{$range}")
do
echo "${BSS[index]} ${SSID[index]} ${CHAN[index]}" >> /tmp/ScannedAPs_Parsed.txt
done

正如您所指出的,错误在于:

count=echo $(( ${grep -c BSS /tmp/ScannedAPs.txt} - 1 ))
正确的语法是
$(命令)
。说:

count=$(( $(grep -c BSS /tmp/ScannedAPs.txt) - 1 ))

此外,您还可以:

说:

for index in $(seq 0 $count)
for ((index=0;index<=count;index++)); do
  # Do something here
done
或者,您可以循环(如ruakh所说)说:

for index in $(seq 0 $count)
for ((index=0;index<=count;index++)); do
  # Do something here
done

for((index=0;indexThanks;+1)。此外,我认为可以省去算术扩展,而
for
-循环写为
for((index=0;index
。谢谢你的回复,我昨天收到了它,但我喜欢你的建议,我会看看它们在openWRT上是如何工作的。再次感谢。