【问题标题】:Pre-fill user response to user input in bash with read command使用读取命令预填充用户对 bash 中用户输入的响应
【发布时间】:2018-10-13 15:31:09
【问题描述】:

我有一个 bash 程序要求用户对其进行编辑的句子。假设这句话是“快速棕色狐狸跳过懒狗”。现在,我重复这句话,然后要求用户用编辑后的版本回复。

echo "The quick brown fox jumps over the lazy dog"
read -p "Edit: " newSentenceVariable

--> 将显示: Edit: (用户输入编辑的句子) (用户返回)

是否可以在用户输入已经预先填充初始句子的情况下执行某些操作,以便他们可以进行编辑然后按回车键。

read -p "Edit: " "The quick brown fox jumps over the lazy dog" newSentenceVariable

---> 将显示:编辑:快速的棕色狐狸跳过懒狗

这样,如果没有对句子进行编辑,用户只需按 Enter。如果他们必须在句子中添加句点,则输入“。”然后是回车键。这一切都不是让用户复制/粘贴或将整个句子重新输入到提示响应中。

谢谢

echo $BASH_VERSION
3.2.57(1)-release

【问题讨论】:

  • 更新到 bash 4 添加了 -i 参数。所以是的,现在我在 4 上,这是重复的。不确定是否有 3 或更低的解决方案。

标签: bash


【解决方案1】:

bash 4+ 解决方案:

read -e -p "Edit: " -i "The quick brown fox jumps over the lazy dog" newSentenceVariable

来自help read

-e 使用 Readline 在交互式 shell 中获取行
-i text 使用 TEXT 作为 Readline 的初始文本

【讨论】:

  • 检查macOS版本是否有类似这个参数。
  • @MatthewSabatini:将echo $BASH_VERSION 的输出添加到您的问题中。
猜你喜欢
  • 1970-01-01
  • 2020-12-22
  • 2020-04-28
  • 1970-01-01
  • 2017-03-22
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
相关资源
最近更新 更多