我想使用WHILE循环以下列模式打印数字。
0
01
012
0123
.....
......
0123456789
#!/bin/sh
a=0
b=0
while [ $a -le 10 ]
do
while [ $b -le $a ]
do
echo -n "$b"
b=`expr $b + 1`
done
echo
a=`expr $a + 1`
done
获取输出:
0
1
2
3
4
5
6
7
8
9
10
答案 0 :(得分:4)
由于您只是将最新的计数附加到行输出,只需将其作为文本。
#!/bin/bash
a=0
out=''
while [ $a -lt 10 ]
do
out=$out$a
echo $out
a=`expr $a + 1`
done
此外,le
小于或等于,因此您最终得到10.使用lt 10
或le 9
。
答案 1 :(得分:0)
如果您使用bash
shell,则可以利用 {x..y}
形式的序列表达式,并使用特殊参数 $_
通常会扩展到上一个命令的最后一个参数。
#/bin/bash
i=
for i in {0..9}
do
echo "$_$i"
done
答案 2 :(得分:0)
a=0
b=1
while [ $a -lt 10 ]
do
a=0
while [ $a -lt $b ]
do
echo -n $a
a=`expr $a + 1 `
done
echo
b=`expr $b + 1`
done