我有关于bash输出的这个问题我需要编写输出的代码:
1
22
333
到目前为止使用循环我有这个代码:
First loop....
for ((i=1; i<=1; i=i+1))
do
echo $i
done
#Second loop....
for ((i=1; i<=2; i++))
do
for ((j=2; j<=2; j++))
do
echo -n $j
done
done
#Third loop.....
for ((i=1; i<=2; i++))
do
for ((j=2; j<=2; j++))
do
echo -e $j
done
done
问题是它在第二个内部输出第三个循环,如
1
223
33
感谢您的帮助。
答案 0 :(得分:1)
一个简单的嵌套for循环就足以做你想做的事了:
CODE:
for ((i=1; i<=5; i++))
do
for((j=1; j<=$i; j++))
do
echo -n $i
done
echo
done
输出:
1
22
333
4444
55555
答案 1 :(得分:0)
在第一个循环结束后输出换行符:
for ((i=1; i<=3; i++)) ; do
for ((j=1; j<=i; j++)) ; do
echo -n $i
done
echo
done
请注意,在Perl中,您可以隐藏重复运算符x
中的内部循环:
perl -le 'print $_ x $_ for 1 .. 3'
答案 2 :(得分:0)
尝试两个嵌套的for
循环,其中包含从 STDIN 读取的交互式开始和结束值,如下所示:
# To make it more interactive
echo -n 'Enter start value: '
read START
echo -n 'Enter finish value: '
read FINISH
# Two nested for loops
for ((I=$START; I<=FINISH; I++))
do
for ((J=$START; J<=$I; J++))
do
echo -n $I
done
echo
done