我有一个循环,我想打破任何用户输入。Bash:用`read`捕获换行符
人为的例子 - 计数到10时的计时器:
counter=10
while ((counter > 0)) && [[ -z $input ]]; do
printf '\rRestart in %s seconds' "$counter"
read -n 1 -t 1 input
((counter--))
done
echo "Completed"
这适用于适当的所有用户输入除了Enter
,我完全相信,Enter
将是最常见的输入。
如何使用Bash的read
命令捕获Enter
?
修复了语法 - 给定的示例代码实际上并没有工作 - 也使它遵循一些约定。 –
@CharlesDuffy谢谢! –
我错过了第一遍格式化/约定修正中的主要内容 - 在printf的第一个参数中不应该使用参数扩展(因为它可能会导致格式字符串无效)而不会出现情有可原的情况。在随后的传球中补丁。 –