菜单

循序渐进

    Java Oracle MySQL Bash Python Nginx Apache Redis MongoDB Git HTML Javascript Node CSS

最近来访

    一行代码实现shell乘法口诀

    张嘉杰.原创 2011-06-12 shell

    最近学习shell命令,先用shell实现一个乘法口诀表。脚踏实地,抱着平常心学习shell编程。学无止境,不能开启等死模式呐。:)

    虽然是一个很简单的两层循环。我们一步一步来优化。

    # 9x9乘法口诀表实现(一)
    $ for i in 1 2 3 4 5 6 7 8 9 ;do for j in 1 2 3 4 5 6 7 8 9 ;do printf "%2d " $((i*j)); done; echo; done

    9x9乘法口诀表实现(一)

    # 9x9乘法口诀表实现(二)
    $ for((i=1;i<10;i++)); do for((j=1;j<=i;j++)); do echo -ne "$j*$i=$(($i*$j))\t"; if [ $j -eq $i ]; then echo -e ''; fi; done; done

    9x9乘法口诀表实现(二)

    # 9x9乘法口诀表实现(三)
    $ for i in {1..9}; do for j in `seq 1 $i`; do echo -ne "${j}*${i}=$((j*i))\t"; done; echo; done

    9x9乘法口诀表实现(三)

    # 9x9乘法口诀表实现(四)
    $ seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%d*%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

    9x9乘法口诀表实现(四)

    # 9x9乘法口诀表实现(五)
    $ seq 1 9 | awk '{for(i=1;i<=$1;i++)printf i"*"$1"="i*$1" ";print ""}'

    9x9乘法口诀表实现(五)

    到这里基本就完成了。使用到for循环、seqsedawk组合实现,还是可以学习到不少用法。

    ###有更好的写法以后补充进来。:)


    版权属于:jcore.cn

    原文地址:http://www.jcore.cn/2011/06/12/linux-shell-multiply9x9

    除非注明,文章均为原创,转载时必须以链接形式注明原始出处。

    分享文章到:

    热门推荐文章