关于Bash for循环:Bash for循环 – 在n之后命名(这是用户的输入)

Bash for loop - naming after n (which is user's input)

本问题已经有最佳答案,请猛点这里访问。

我使用for i in {1..n}循环遍历命令并希望输出文件具有n扩展名。

例如:

1
2
3
  for i in {1..2}
  do cat FILE > ${i}_output
  done

但是n是用户的输入:

1
2
3
4
5
6
  echo 'Please enter n'
  read number
  for i in {1.."$number"}
  do
    commands > ${i}_output
  done

循环滚动n次 - 这很好,但我的输出看起来像这个{1..n}_output

如何在这样的循环中命名我的文件?

编辑

也尝试了这个

1
2
3
4
5
  for i in {1.."$number"}
  do
    k=`echo ${n} | tr -d '}' | cut -d"." -f 3`
    commands > ${k}_output
  done

但它不起作用。


使用"C风格"for -loop:

1
2
3
4
5
6
echo 'Please enter n'
read number
for ((i = 1; i <= number; i++))
do
    commands > ${i}_output
done

请注意,for -loop标头中的numberi之前不需要$,但需要使用双括号。


for循环中的range参数仅适用于常量值。 所以用{1..10}之类的值替换{1..$num}

要么

将for循环更改为:

1
  for((i=1;i<=number;i++))


你可以使用一个简单的for循环(类似于C,C ++等langaues中的循环):

1
2
3
4
5
6
echo 'Please enter n'
read number
for (( i=1; i <= $number; i++ ))
do
  commands > ${i}_output
done


请尝试使用seq (1)。 如在for i in $(seq 1 $number)中。