2011-10-07 76 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

感謝查理,我會嘗試,讓你知道 –