Shell脚本打印出错误的for循环

时间:2013-02-25 06:09:13

标签: bash shell for-loop

我必须创建一个钻石,但我一直得到错误的输出。

我写了3个循环,第一个是高度,第二个是空格,第三个是星号

第二部分是钻石的后半部分

输出

enter shape
diamond
width
5
 *  *  *  * 
 * *  * *  * * 
 * * *  * * * 
 * * * * 


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

脚本

"diamond")
echo "width"
read width

for ((h = 1; h <= $width; h++))
do

        for ((s = $width; s > h; s--))
        do
        printf ' '
                for ((a = 1; a <= h; a++))
                do
                printf '* '
                done
        done

echo ""
done

for ((h = $width; h > 0; h--))
do
        for ((s = $width; s > h; s--))
        do
        printf ' '
                for ((a=1 ; a <= h; a++))
                do
                printf '* '
                done
        done

echo ""
done
;;

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

“空间”done的{​​{1}} - 循环位于钻石顶部和底部的错误位置:

for

我建议您使用for ((h = 1; h <= $width; h++)) do for ((s = $width; s > h; s--)) do printf ' ' done # <-- This should be here! for ((a = 1; a <= h; a++)) do printf '* ' done echo "" done 运行脚本以查看正在发生的事情。