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 "\n"
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 "\n"
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