3
我想畫一棵樹下面的表單繪製聖誕樹
*
***
*****
*******
*********
,你可以看到我需要兩個空間,而「*」星星在每一行,但我不能讓它相當我想要的方式
#!/bin/bash
display_tree() {
local rows=$1
local columns=$2
for ((i=0; i<$rows; i++))
do
#spaces loop
for ((j=0; j<$columns; j++))
do
echo -n " "
#drawing tree loop
for ((a=0; a<$(($i + 1)); a++))
do
echo -n "*"
done
done
echo
done
}
if [ $# -eq 2 ]; then
display_tree $1 $2
else
echo "Usage: $0 rows columns"
fi
它看起來像你還沒有正式你需要多少空間你散發明星之前發出,並且您已經包裹的內部循環,而不是使他們的連續的。當樹高3行時,需要在行1,行2和行3上的第一顆星前放置多少個空間?你的代碼如何確保發生? (提示,它尚未 - 所以你必須修改它,直到它。) –
,你會更好地理解你的腳本的內部,如果你修改最內層的循環發射'printf「a =%s \ ti =%s \ tj =%s \ n「$ a $ i $ j>」/ dev/tty ????「'哪裏?是在單獨的窗口中運行'tty',然後用數字代替'????'在我的示例中。或者你可以省略'>「/ dev/tty ...」,並將輸出與你的聖誕樹混合在一起。祝你好運。 – shellter