首页 > 解决方案 > 使用读取命令预填充用户对 bash 中用户输入的响应

问题描述

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

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

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

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

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

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

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

谢谢

echo $BASH_VERSION
3.2.57(1)-release

标签: bash

解决方案


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 的初始文本


推荐阅读