bash - 使用读取命令预填充用户对 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 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 的初始文本
推荐阅读
- python - 根据给定索引的值相似性对 numpy 数组进行分组
- r - 从 checkboxInput 更改图形
- javascript - 如何根据纵向或横向模式(和方向更改)更改“初始比例”?
- javascript - 如果我将函数分配给变量,则会在控制台中显示错误
- typescript - 如何使用打字稿和玩笑模拟猫鼬模式,使用什么类型返回?
- c++ - 为包含多个 QQuickPaintedItems 的 QQuickView 实现滚动
- api - Bandcamp api:查询 my_bands 端点时,您发送什么 POST 信息?
- linux - 如何从源代码构建 Guile 库?
- python - 使用python从netCDF文件中提取数据
- android - 版本更新后我的 Android 电子邮件代码损坏