Unix Shell脚本:while循环

时间:2016-06-23 08:19:57

标签: shell unix while-loop

我想使用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

3 个答案:

答案 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 10le 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