我在这里的一个答案中找到了一些代码,并根据我的需要进行了调整,但现在我有两个问题:
问题一:case 语句中的代码完成后如何显示选项文本?这样用户就可以再次看到选项。
问题2:我可以让运行脚本时每个选项都显示在自己的行上吗?目前还不是。
options=(
"quit/exit"
"new rational db"
"run php for rational codebase"
"run php for playground codebase"
)
select option in "${options[@]}"; do
case "$REPLY" in
1) break;;
2) sudo -i -u db2inst1 bash -c "db2stop force;";;
3) rm /tmp/createDb2*;;
4) ;;
esac
done
答案1
Q1:在任意选项末尾添加空格,使其长度超过40个字符,例如:
options=(
"quit/exit"
"new rational db"
"run php for rational codebase"
"run php for playground codebase "
)
Q2:不确定是否有更优雅的方法(没有在 中看到help select
),但这应该可行:
finished=
while test ! "$finished"; do
select option in "${options[@]}"; do
case "$REPLY" in
1) finished=1;;
2) sudo -i -u db2inst1 bash -c "db2stop force;";;
3) rm /tmp/createDb2*;;
4) ;;
esac
break
done
done