编写shell脚本实现如下菜单界面: Menu 1) 1 2) 2 3) 3 4) 4 #? 选择后打印以选定选项为边长的*实心正方形。(一颗*为一个单位长度)
时间: 2024-11-22 17:40:51 浏览: 23
在Shell脚本中创建这样一个简单的命令行菜单并打印指定选项的星号图案,你可以使用`select`、`echo` 和循环结构。下面是一个基本的示例:
```bash
#!/bin/bash
# 创建菜单选项
options=("1" "2" "3" "4")
# 显示菜单
echo "Menu"
for i in "${options[@]}"; do
echo -n "$i) $i "
done
echo "#?"
# 获取用户选择并处理
while true; do
read -p "请选择(1-4): " choice
if [[ "$choice" =~ ^[1-4]$ ]]; then
break
else
echo "请输入1到4之间的数字。"
fi
done
# 根据选择打印星号图案
case $choice in
1)
rows=$(printf "%d\n" $choice)
printf "\n%s\n" $(seq 1 $rows | tr ' ' '*')
;;
2)
rows=$((choice * choice))
printf "\n%s\n" $(seq 1 $rows | tr ' ' '*')
;;
3)
# 三角形模式
printf "\n"
for ((i = 0; i < choice; i++)); do
printf "*"
for ((j = i + 1; j < choice; j++)); do
printf " "
done
printf "*\n"
done
;;
4)
# 长方形模式
cols=$(($choice * 2 - 1))
printf "\n"
for ((i = 0; i < choice; i++)); do
printf "*"
for ((j = 0; j < cols; j++)); do
if [ $((i + j)) -eq $choice ]; then
printf "*"
else
printf " "
fi
done
printf "*\n"
done
;;
esac
阅读全文