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 我相信您会得到立即回答。