我正在循环使用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
但它不起作用。
答案 0 :(得分:5)
echo 'Please enter n'
read number
for ((i = 1; i <= number; i++))
do
commands > ${i}_output
done
请注意,$
或number
之前的i
或for
不需要{{1}},但需要double-parentheses。
答案 1 :(得分:2)
for循环中的range参数仅适用于常量值。因此,请将{1..$num}
替换为以下值:{1..10}
。
OR
将for循环更改为:
for((i=1;i<=number;i++))
答案 2 :(得分:0)
你可以使用一个简单的for循环(类似于C,C ++等语言中的那些):
echo 'Please enter n'
read number
for (( i=1; i <= $number; i++ ))
do
commands > ${i}_output
done
答案 3 :(得分:-1)
请尝试使用seq (1)
。与for i in $(seq 1 $number)
中一样。