0
  n=5
  for i in {1..$[n]}
  do 
       echo $i
  done

それは与えます:

{1..5}

しかし、出力する必要があると思います:

1
2
3
4
5

なぜこのような奇妙な出力が得られるのでしょうか?

4

1 に答える 1

2

それはほとんどなぞなぞです。中括弧の展開は、変数展開の前に行われています。bash の初心者向けガイドには、展開に関する詳細 が記載されています。bash でこれを行う方法は無数にあります。あなたはから始めることができます:

n=5
for i in $(eval echo {1..$n})
do
   echo $i
done
于 2013-10-24T07:35:00.010 に答える