编辑显示的文字
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
之前,确保它不是空白。
我正在学习 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
之前,确保它不是空白。