使用bash中的PS3提示退出RETURN上的菜单

时间:2014-01-05 10:20:22

标签: bash menu prompt ps3

我正在为我的终端制作一个菜单,这样当我打开它时,它会向我显示一组位置供我使用。

它工作正常,但我想添加一些额外的东西。

这是我的代码

PS3="
Choose: "
select option in Tweaks Desktop "/" "~"
do
    case $option in
        Tweaks) cd "/Users/jontelang/Dropbox/Tweaks/"; break;;
        Desktop) cd "/Users/jontelang/Desktop"; break;;
        \/) cd "/"; break;;
        \~) break;;
     esac
done

它给了我这个输出:

1) Tweaks
2) Desktop
3) /
4) ~

Choose: 

当我按下RETURN时,它再次向我显示菜单,我想在按下RETURN时使菜单消失。有谁知道怎么做?

我尝试添加*)#?)以及break;;内部但没有骰子的变体。如果我输入SPACE然后返回,它会起作用,但这是我想要避免的(2次击键与1次)。

我还想知道是否有办法让我按下按键(1-4),而不必在按下后按RETURN。

1 个答案:

答案 0 :(得分:0)

好吧,我跳过整个PS3的事情,只是跟着read和一些简单的回声。我会把这个作为答案,但如果有人想出一个确切的答案来解决实际问题,我会把它作为答案。

echo "1) Desktop";
echo "2) Tweaks";
echo "3) /";
echo "4) ~";

read -p "Choose: " -n 1 -r
case $REPLY in
 1) cd ~/Desktop; echo " ";;
 2) cd ~/Dropbox/Tweaks; echo " ";;
 3) cd /; echo " ";;
 *) cd ~ ;;
esac

每个cd之后的回音仅用于换行,个人偏好。