从grep到计数范围变量Bash OpenWRT的行计数
我正在尝试获取0..格式的范围,以便在for循环中使用。我现在有这个,但它没有抓住正确的计数。我正在尝试在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
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上是如何工作的。再次感谢。