2011-10-07 75 views
1

这不是一个家庭作业,无论如何,从我正在开发的这部分程序开始。我想要做的是使用bash循环打印此形状。Bash循环程序



******** 
    **** 
    ** 

这是我迄今为止,它会打印形状,但我试图找到一种方法来突出部分回声语句中使用,因此,例如,如果我把瓦尔=“8”,然后将var递减2并将它们打印在同一行上。任何帮助,欢迎感谢

#!/bin/bash 
     COUNTER="1" 
      until [ $COUNTER -lt 1 ]; do 
echo "**********" 
echo " ******** " 
echo " ****** " 
echo " **** " 
echo " ** " 

       let COUNTER-=1 
     done 

回答

1

您可以用$ bash中做一个循环算术((表达式))符号,就像你会在其他编程语言。所以,(大约是数不胜数脚本languaes不要依赖于语法,直到我检查了它,我的程序,并让他们感到困惑。)写像

function printNx { 
    N=$1 
    X=$2 
    count=0 
    while $(($count++ < $N)) 
    do 
     echo -n $X 
    done 
    echo "" 
} 

功能

更新

几乎拥有了:

bash $ cat foo.bash 
function printNx { 
    N=$1 
    X=$2 
    count=0 
    while [ $((count ++)) -lt $N ] 
    do 
     echo -n "$X" 
    done 
    echo "" 
} 

printNx 5 '*' 
bash $ bash foo.bash 
***** 
bash $ 
+0

感谢查理,我会尝试,让你知道 –