如何在 bash 中自定义 select 循环

how to customize select loop in bash

我想知道是否可以为 bash 自定义 select 循环。

我有这个代码:

select varName in list
do
case $varName in
    pattern1)
        command1;;
    pattern2)
        command2;;
    pattern1)
        command3;;
    *)
        echo "Error select option 1..3";;
esac            
done

输出是这样的:

 1) columbia    3) challenger  5) atlantis    7) pathfinder
 2) endeavour   4) discovery   6) enterprise
 #? 

我想在横向视图中订购选项,同时将提示 [#?] 更改为其他内容

谢谢

select 显示 PS3 提示。

您可以尝试类似的方法:

echo $PS3
old_PS3=$PS3
export PS3="make a selection :D"
list='columbia challenger atlantis pathfinder endeavour discovery enterprise'
select varName in $list
do
case $varName in
    pattern1)
        command1;;
    pattern2)
        command2;;
    pattern1)
        command3;;
    *)
        echo "Error select option 1..3";;
esac            
done
# set PS3 back to original
export PS3=$old_PS3