1.13 以不按回车键的方式读取字符“n”
read
是一个重要的Bash命令,用于从键盘或标准输入中读取文本。我们可以使用read
以交互的形式读取来自用户的输入,不过read
能做的可远不止这些。接着我们来演示read
命令的一些重要选项。
1.13.1 预备知识
任何一种编程语言的输入库大多都是从键盘读取输入;但只有当回车键按下的时候,才标志着输入完毕。在有些重要情形下是没法按回车键的,输入结束与否是基于字符数或某个特定字符来决定的。例如,在一个游戏中,当按下 +
键时,小球就会向上移动。那么若每次都要按下 +
键,然后再按回车键来确认已经按过 +
键,这就显然太低效了。read
命令提供了一种不需要按回车键就能够搞定这个任务的方法。
1.13.2 实战演练
下面的语句从输入中读取n
个字符并存入变量variable_name
:
read -n number_of_chars variable_name
例如:
- $ read -n 2 var
- $ echo $var
read
还有很多其他选项。让我们来看看它们。
用不回显(non-echoed)的方式读取密码:
read -s var
显示提示信息:
read -p "Enter input:" var
在特定时限内读取输入:
read -t timeout var
例如:
- $ read -t 2 var
- #在2秒钟内将键入的字符串读入变量var
用定界符结束输入行:
read -d delim_char var
例如:
- $ read -d ":" var
- hello: #var被设置为hello