我正在脚本(#!/bin/bash)中创建一个菜单,它可以按照我的需要工作:
PS3='[ menu ] choose partition tool:'
options=("fdisk" "cfdisk" "continue")
select opt in "${options[@]}"
do
case $opt in
"fdisk")
fdisk /dev/sda
;;
"cfdisk")
cfdisk
;;
"continue")
break
;;
*) echo "invalid option $REPLY"
;;
esac
done
这是屏幕上的结果:
1) fdisk
2) cfdisk
3) continue
[ menu ] choose partition tool:
我怎样才能像这样改变布局(?):
[ menu ] choose partition tool (1) fdisk (2) cfdisk (3) continue:
简而言之,我知道在 PS3= 中编写选项就足够了:PS3='[菜单]选择分区工具(1)fdisk(2)cfdisk(3)继续:'但我想知道如何不显示选项列表(在描述中)。
答案1
您必须为自己的自定义版本编写代码select
。像这样的事情可能会起作用:
#!/bin/bash
#
PS3='[ menu ] choose partition tool:'
options=('fdisk' 'cfdisk' 'continue')
while :
do
printf '%s' "$PS3"
for ((i = 0; i < ${#options[@]}; i++))
do
printf ' (%d) %s' $((i+1)) "${options[i]}"
done
read -p ': ' opt
case "$opt" in
1|"fdisk")
fdisk /dev/sda
;;
2|"cfdisk")
cfdisk
;;
3|"continue")
break
;;
*) echo "invalid option $opt"
;;
esac
done