编写一个shell脚本来打印钻石图

时间:2012-03-29 03:28:44

标签: bash shell

这是作业,并不意味着欺骗任何人,但我没有在我原来的帖子中指明。

编写一个shell脚本来打印下图(不要硬编码)。

http://cl.ly/1K0C1b2x3W2N3o3m1Y2y

1 个答案:

答案 0 :(得分:3)

一方面,我不想只是给出一个答案。另一方面,我认为我已经做了这个令人费解的事情,或许,在试图弄清楚它是如何工作方面有一些教育价值。祝你好运!

#!/bin/sh 

while i=$( expr ${i-0} ${op-+} 1 ); do
    j=$i
    t=$( expr 2 \* $i - 1 )
    printf %$( expr \( $( expr 2 \* ${1-6} - 1 ) - $t \) / 2 )s
    while test $(( j-- )) -gt 0; do printf '* '; done
    echo
    test $i = ${1-6} && op=-
done

这是一个不错的变体:

#!/bin/sh

while i=$( expr ${i-0} ${op-+} 1 ); do
    printf %$( expr $(( 2 * $(( ${1-6} - $i )) )) / 2 )s
    printf \*%$(( $i - 1 ))s | sed 's/ / */g'
    test $i = ${1-6} && op=-
done