1 #!/bin/bash 2 ######################################################################### 3 # File Name : print_start.sh 4 # Author : uc 5 # Created Time : 21 Sep 2016 6 usage() { 7 cat <<EOF 8 9 EOF 10 } 11 12 13 main() { 14 15 echo "请选择要打印的图形:" 16 echo '#########################################' 17 echo "1,99乘法表" 18 echo "2,三角形" 19 echo "3,菱形" 20 echo "4,随机打印" 21 echo '#########################################' 22 echo "" 23 24 read -r -p "输入要打印的图形:" difficulty 25 case $difficulty in 26 1) 27 for ((i = 1; i < 10; i++)) 28 do 29 for ((j = 1; j <= i; j++)) 30 do 31 echo -n "$j" '*' "$i =" "$((i * j)) "; 32 done 33 echo "" 34 done 35 ;; 36 2) 37 for ((i = 1; i < 10; i++)) 38 do 39 for ((j = 10; j > i; j--)) 40 do 41 echo -n " "; 42 done 43 for ((m = 1; m <= i; m++)) 44 do 45 echo -n "$i " 46 done 47 echo "" 48 done 49 ;; 50 3) 51 for ((i = 1; i < 12; i++)) 52 do 53 if [[ $i -le 6 ]]; then 54 for ((j = $((12-i)); j > i; j--)) 55 do 56 echo -n " "; 57 done 58 for ((m = 1; m <= $((2*i-1)); m++)) 59 do 60 #echo -n "$i " 61 echo -n "* " 62 done 63 echo "" 64 elif [[ $i -gt 6 ]]; then 65 n=$((12-i)) 66 for ((j = $((12-n)); j > n; j--)) 67 do 68 echo -n " "; 69 done 70 for ((m = 1; m <= $((2*n-1)); m++)) 71 do 72 #echo -n "$i " 73 echo -n "* " 74 done 75 echo "" 76 fi 77 done 78 ;; 79 4) 80 random_no=$((RANDOM%10+10)) 81 82 read k 83 i=1 84 85 while [ "$i" -le "$k" ] 86 do 87 let ban=k/2+1 88 89 if [[ $i -le $ban ]] 90 then 91 j=1 92 while [ $j -le $(( ban - i)) ] 93 do 94 printf " " 95 let j++ 96 done 97 98 n=1; 99 let xing=i*2-1 100 while [ "$n" -le "$xing" ] 101 do 102 printf "*" 103 let n++ 104 done 105 printf " " 106 107 else 108 j=1 109 while [ $j -le $((i - ban)) ] 110 do 111 printf " " 112 let j++ 113 done 114 115 n=1 116 let xing1=k-i*2+ban*2 117 while [ "$n" -le "$xing1" ] 118 do 119 printf "*" 120 let n++ 121 done 122 printf " " 123 fi 124 let i++ 125 done 126 ;; 127 s) 128 pn=$((RANDOM%10+10)) 129 if [[ $((pn%2)) -eq 0 ]]; then 130 pn=$((pn+1)) 131 fi 132 hm=$(($((pn+1))/2)) 133 134 echo "$pn" "$hm" 135 for ((i = 1; i < pn; i++)) 136 do 137 if [[ $i -le $hm ]]; then 138 for ((j = $((hm-i)); j > 0; j--)) 139 do 140 echo -n " "; 141 done 142 for ((m = 1; m <= $((2*i-1)); m++)) 143 do 144 #echo -n "$i " 145 echo -n "*" 146 done 147 echo "" 148 elif [[ $i -gt $hm ]]; then 149 n=$((pn-i)) 150 for ((j = $((hm-n)); j > 0; j--)) 151 do 152 echo -n " "; 153 done 154 for ((m = 1; m <= $((2*n-1)); m++)) 155 do 156 #echo -n "$i " 157 echo -n "*" 158 done 159 echo "" 160 fi 161 done 162 echo "谢谢使用" 163 ;; 164 *) 165 for ((i = 1; i < 12; i++)) 166 do 167 if [[ $i -le 6 ]]; then 168 for ((j = $((12-i)); j > i; j--)) 169 do 170 echo -n " "; 171 done 172 for ((m = 1; m <= $((2*i-1)); m++)) 173 do 174 #echo -n "$i " 175 echo -n "*" 176 done 177 echo "" 178 elif [[ $i -gt 6 ]]; then 179 n=$((12-i)) 180 for ((j = $((12-n)); j > n; j--)) 181 do 182 echo -n ""; 183 done 184 for ((m = 1; m <= $((2*n-1)); m++)) 185 do 186 #echo -n "$i " 187 echo -n "*" 188 done 189 echo "" 190 fi 191 done 192 echo "谢谢使用" 193 ;; 194 esac 195 196 case $random_no in 197 1 ) 198 ;; 199 esac 200 } 201 202 main "$@" 203 204 exit 0