5

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

例如:

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

然而n,用户的输入是:

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

循环滚动n多次 - 这工作正常,但我的输出看起来像这样{1..n}_output

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

编辑

也试过这个

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

但它不起作用。

4

4 回答 4

8

使用“C 风格”for循环

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

请注意,在-loop 标头之前或中$不需要,但需要双括号numberifor

于 2013-02-14T08:21:55.477 回答
3

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

或者

将 for 循环更改为:

  for((i=1;i<=number;i++))
于 2013-02-14T08:21:13.943 回答
0

您可以使用一个简单的 for 循环(类似于 C、C++ 等语言中的循环):

echo 'Please enter n'
read number
for (( i=1; i <= $number; i++ ))
do
  commands > ${i}_output
done
于 2013-02-14T08:24:20.060 回答
-1

尝试seq (1)改用。如for i in $(seq 1 $number).

于 2013-02-14T08:16:07.030 回答