shell 基本编程 打印菱形 三角形 乘法表
2016-09-22 10:47
686 查看
#!/bin/bash ######################################################################### # File Name : print_start.sh # Author : uc # Created Time : 21 Sep 2016 usage() { cat <<EOF EOF } main() { echo "请选择要打印的图形:" echo '#########################################' echo "1,99乘法表" echo "2,三角形" echo "3,菱形" echo "4,随机打印" echo '#########################################' echo "" read -r -p "输入要打印的图形:" difficulty case $difficulty in 1) for ((i = 1; i < 10; i++)) do for ((j = 1; j <= i; j++)) do echo -n "$j" '*' "$i =" "$((i * j)) "; done echo "" done ;; 2) for ((i = 1; i < 10; i++)) do for ((j = 10; j > i; j--)) do echo -n " "; done for ((m = 1; m <= i; m++)) do echo -n "$i " done echo "" done ;; 3) for ((i = 1; i < 12; i++)) do if [[ $i -le 6 ]]; then for ((j = $((12-i)); j > i; j--)) do echo -n " "; done for ((m = 1; m <= $((2*i-1)); m++)) do #echo -n "$i " echo -n "* " done echo "" elif [[ $i -gt 6 ]]; then n=$((12-i)) for ((j = $((12-n)); j > n; j--)) do echo -n " "; done for ((m = 1; m <= $((2*n-1)); m++)) do #echo -n "$i " echo -n "* " done echo "" fi done ;; 4) random_no=$((RANDOM%10+10)) read k i=1 while [ "$i" -le "$k" ] do let ban=k/2+1 if [[ $i -le $ban ]] then j=1 while [ $j -le $(( ban - i)) ] do printf " " let j++ done n=1; let xing=i*2-1 while [ "$n" -le "$xing" ] do printf "*" let n++ done printf "\n" else j=1 while [ $j -le $((i - ban)) ] do printf " " let j++ done n=1 let xing1=k-i*2+ban*2 while [ "$n" -le "$xing1" ] do printf "*" let n++ done printf "\n" fi let i++ done ;; s) pn=$((RANDOM%10+10)) if [[ $((pn%2)) -eq 0 ]]; then pn=$((pn+1)) fi hm=$(($((pn+1))/2)) echo "$pn" "$hm" for ((i = 1; i < pn; i++)) do if [[ $i -le $hm ]]; then for ((j = $((hm-i)); j > 0; j--)) do echo -n " "; done for ((m = 1; m <= $((2*i-1)); m++)) do #echo -n "$i " echo -n "*" done echo "" elif [[ $i -gt $hm ]]; then n=$((pn-i)) for ((j = $((hm-n)); j > 0; j--)) do echo -n " "; done for ((m = 1; m <= $((2*n-1)); m++)) do #echo -n "$i " echo -n "*" done echo "" fi done echo "谢谢使用" ;; *) for ((i = 1; i < 12; i++)) do if [[ $i -le 6 ]]; then for ((j = $((12-i)); j > i; j--)) do echo -n " "; done for ((m = 1; m <= $((2*i-1)); m++)) do #echo -n "$i " echo -n "*" done echo "" elif [[ $i -gt 6 ]]; then n=$((12-i)) for ((j = $((12-n)); j > n; j--)) do echo -n ""; done for ((m = 1; m <= $((2*n-1)); m++)) do #echo -n "$i " echo -n "*" done echo "" fi done echo "谢谢使用" ;; esac case $random_no in 1 ) ;; esac } main "$@" exit 0
相关文章推荐
- shell下打印菱形(一起熟悉shell脚本编程)
- shell 打印菱形 函数式编程
- 嵌套循环打印三角形 菱形 99乘法表
- shell脚本练习二(打印乘法表、等边三角形、菱形)
- Bourne again shell (bash) 基本编程
- Linu Shell 编程基础--基本IO重定向和管道
- shell脚本编程教程之二 --- 基本的shell编程格式+简单的脚本实例
- Linux-Shell脚本编程-学习-1-Linux基本命令
- 用math.abs打印菱形boolean和嵌套for分别打印空心三角形
- PTA7-15 编程打印空心字符菱形(10 分)
- 关于用for()循环打印一个三角形(菱形)
- shell编程之打印输出
- 利用python打印出菱形、三角形以及矩形的方法实例
- java中使用for循环去打印正方形,三角形,菱形等图形
- java 打印三角形,菱形的方法
- Bash 实例,第一部分-Bourne again shell (bash) 基本编程
- Java用 * 打印图形-菱形、空心菱形、三角形等
- shell: 打印99乘法表
- Bash 实例,第一部分 Bourne again shell (bash) 基本编程
- shell 打印9*9 乘法表