我想在按任意键时读取bash,无论是箭头键,数字,字母还是标点符号,而无需按Enter键。
这是我提出的最接近的,除了当按下转义键时,它会溢出到下一个输入中。此外,转义键将读取但不会回显。
#!/bin/bash
read -r -n 1 -d $'\n' -p 'input> ' line
echo -en "\n"
echo "$line"
答案 0 :(得分:1)
有点hacky / dirty方式,但应该适用于用户交互式shell ...
read -n1 -s -p 'input> ' line; read -t 0.1 -n2 -s line2
line="$line$line2"
现在,您可以将<ESC>[A
转换为字符串<UP>
,而不是。
注意:如果stdin被重定向(例如,来自管道/文件......),它很可能会失败。