您的位置:首页 > 运维架构 > Shell

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: