for x in {1..10} in shell 脚本只运行一次
for x in {1..10} in shell script runs only once
下面的脚本在一次迭代后停止。我如何做到 运行 10 次?
#!/bin/sh
for a in {1..10}
do
echo 'a'
x=`sudo hdparm -t /dev/sda`
echo $x | awk 'match([=11=],"= "){print substr([=11=],RSTART+1)}' >> input.txt
done
编辑:
input.txt
将有 401.98 MB/sec ...
,读取速度列表。
sh
将 bashism {1..10}
视为字符串,因此 for a in {1..10}
将 a
设置为字符串 {1..10}
循环一次然后退出。如果您使用 echo "$a"
而不是 echo 'a'
就像@CharlesDuffy 在您发布问题时立即建议的那样,您自己就会发现这一点。希望您现在知道告诉我们您在提问时实际使用的 shell 很重要,如果您将其标记为 sh
而不是 bash
我相信您会得到立即回答。
下面的脚本在一次迭代后停止。我如何做到 运行 10 次?
#!/bin/sh
for a in {1..10}
do
echo 'a'
x=`sudo hdparm -t /dev/sda`
echo $x | awk 'match([=11=],"= "){print substr([=11=],RSTART+1)}' >> input.txt
done
编辑:
input.txt
将有 401.98 MB/sec ...
,读取速度列表。
sh
将 bashism {1..10}
视为字符串,因此 for a in {1..10}
将 a
设置为字符串 {1..10}
循环一次然后退出。如果您使用 echo "$a"
而不是 echo 'a'
就像@CharlesDuffy 在您发布问题时立即建议的那样,您自己就会发现这一点。希望您现在知道告诉我们您在提问时实际使用的 shell 很重要,如果您将其标记为 sh
而不是 bash
我相信您会得到立即回答。