使用bash脚本的这一部分作为示例
{
read -p "Do you want to update the tv feed? [y/n/q] " ynq
case $ynq in
[Yy]* ) rm ~/cron/beeb.txt; /usr/bin/get-iplayer --type tv>>~/cron/beeb.txt;;
[Nn]* ) echo;;
[Qq]* ) exit;;
* ) echo "Please answer yes or no. ";;
esac
}
如何获取它以便您可以按 y 而不必按 Enter 以便接受它?
答案 0 :(得分:5)
将-n 1
添加到read
命令的选项中。来自bash手册页:
-n nchars
read returns after reading nchars characters rather than
waiting for a complete line of input.
顺便说一下,你还应该引用"$ynq"
- 有时用户将只按返回,如果变量不是双引号,可能会导致奇怪的行为。另请注意,read -n
是bash扩展名,因此请确保您使用bash(即#!/bin/bash
或类似内容的第一行),而不是brand-x shell({{1或类似的)。
答案 1 :(得分:3)
将-n1
与read
一起使用,将输入长度的最大数量指定为1:
read -n1 -p "Do you want to update the tv feed? [y/n/q] " ynq