编辑显示的文字

Edit displayed text

我正在学习 linux 并编写 bash 脚本。

是否可以使用 echo 命令显示文本,然后返回并编辑部分文本以在其位置显示?

如果 echo 不这样做,那么在 bash 中,您如何提示用户使用他们可以编辑或删除和替换的默认字符串?

从 bash 开始,要向用户显示一行文本并允许他们对其进行编辑,您可以使用带有默认文本和环境变量的 read,如下所示:

paul@home:~$ read -e -i "default command" FOO
--> default command (edit to "default cmd" <enter>)
paul@home:~$ echo $FOO
--> default cmd

使用 bash 中的 help read 了解有关阅读的更多信息。

对于带有各种小部件的更高级的东西,请查看 dialog。 Dialog 的缺点是它未内置于 bash 中,因此可能无法安装。

要编辑多行,运行 一个文本编辑器。一些脚本让最终用户通过 运行 宁 $EDITOR 选择文本编辑器,而不是将脚本编码为 运行 像 vi/emacs/nano 这样的特定编辑器。在使用 $EDITOR 之前,确保它不是空白。