7

read -n 1 KEY可以获得大多数键,但由多个字符表示的键除外。例如,如果我按向上箭头键:

$ read -n 1; echo
^[[A
$ [A

正如你所看到的,read只需要Esc[A剩下的。

我希望能够在脚本中做的是:

  1. 使用箭头键浏览列表并按下Enter以对其进行操作
  2. 对于其他操作,请按不同的键。
4

2 回答 2

8

您最好使用上面提到的 jm666 对话框,但是还有其他方法可以给猫剥皮。

read -n 1 x; while read -n 1 -t .1 y; do x="$x$y"; done

基本上等到你读到一个字符,然后旋转消耗输入,直到 0.1 秒没有输入。

警告,快速打字员可能会生气。您可能需要调整该超时。

于 2012-07-21T21:57:25.697 回答
5

不是您问题的直接答案-而是解决方法:

您可能应该检查“对话框”实用程序以从外壳创建“ncurses”(面向屏幕)对话框。见:http ://hightek.org/dialog/

谷歌形成一些例子,或检查:http ://unstableme.blogspot.sk/2009/12/linux-dialog-utility-short-tutorial.html

于 2012-07-21T21:46:51.853 回答