閑來無事來一發,你皮任你皮。
#!/bin/bash
echo -e "輸入1打印三角形\n輸入2打印矩形\n輸入3打印棱形\n輸入4退出腳本"
PS3="請輸入對應的序號:"
read -p "請輸入幾層圖形:" n
select input in 1 2 3 4 ;do
case $input in
1)
echo "三角形"
for i in `seq 1 $n`
do
for m in `seq $[$n-$i]`
do
echo -n " "
done
for j in `seq $i`
do
echo -n "* "
done
echo
done
;;
2)
echo "矩形"
for i in `seq 1 $n`
do
for m in `seq $n`
do
echo -n "* "
done
echo ""
done
;;
3)
echo "棱形"
for (( i=1;i<10;i++ ))
do
if [ $i -le 5 ];then
for (( s=$((10-i));s>i;s-- ))
do
echo -n "-"
done
for ((m = 1; m <= $((2*i-1)); m++))
do
#!/bin/bash
echo -e "輸入1打印三角形\n輸入2打印矩形\n輸入3打印棱形\n輸入4退出腳本"
PS3="請輸入對應的序號:"
read -p "請輸入幾層圖形:" n
select input in 1 2 3 4 ;do
case $input in
1)
echo "三角形"
for i in `seq 1 $n`
do
for m in `seq $[$n-$i]`
do
echo -n " "
done
for j in `seq $i`
do
echo -n "* "
done
echo
done
;;
2)
echo "矩形"
for i in `seq 1 $n`
do
for m in `seq $n`
do
echo -n "* "
done
echo ""
done
;;
3)
echo "棱形"
for (( i=1;i<10;i++ ))
do
if [ $i -le 5 ];then
for (( s=$((10-i));s>i;s-- ))
do
echo -n "-"
done
for ((m = 1; m <= $((2*i-1)); m++))
do
echo -n "* "
done
echo ""
elif [[ $i -gt 5 ]] ;then
n=$((10-i))
for ((j=$((10-n));j>n;j--));do
echo -n "-"
done
for ((m = 1; m <= $((2*n-1)); m++))
do
echo -n "* "
done
echo ""
fi
done
;;
4)
echo $0
exit 1
esac
done
效果展示
[root@bogon sbin]# sh san.sh
輸入1打印三角形
輸入2打印矩形
輸入3打印棱形
輸入4退出腳本
請輸入幾層圖形:5
1) 1
2) 2
3) 3
4) 4
請輸入對應的序號1
三角形
*
* *
* * *
* * * *
* * * * *
請輸入對應的序號2
矩形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
請輸入對應的序號3
棱形
--------*
------* * *
----* * * * *
--* * * * * * *
* * * * * * * * *
--* * * * * * *
----* * * * *
------* * *
--------*
請輸入對應的序號4
san.sh