1

我正在为我的终端制作一个菜单,这样当我打开它时,它会为我提供一组我可以去的位置。

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

这是我的代码

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 然后 RETURN 它会起作用,但这是我想要避免的(2 次击键与 1 次击键)。

我还想知道是否有某种方法可以让我按下键(1-4)而不必在之后按 RETURN。

4

1 回答 1

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只是为了换行,个人喜好。

于 2014-01-05T10:58:09.967 回答