通过打开包含内容的文本编辑器来捕获用户输入

时间:2011-09-10 23:55:10

标签: bash input editor prompt

从bash脚本,我想

  1. 打开当前用户的默认文本编辑器
  2. 在其中粘贴字符串$original_content
  3. 用户修改内容后,关闭文本编辑器
  4. 将修改后的字符串捕获到变量$modified_content
  5. 然后将$modified_content保存到$output_file
  6. 谷歌搜索捕获用户输入节目read,这不是我正在寻找的。

    有人能指出我正确的方向吗?

    谢谢

1 个答案:

答案 0 :(得分:2)

这种方法应该适用于大多数编辑:

#!/bin/bash

original_content="Your original content"

echo $original_content > /tmp/user_input.tmp

# For example:
# DEFAULT_EDITOR=/usr/bin/vi
$DEFAULT_EDITOR /tmp/user_input.tmp

modified_content=`cat /tmp/user_input.tmp`

echo $modified_content > /tmp/output_file

这个脚本可能有点抽出,但除了粘贴部分外,它还会执行您想要的所有操作,因为您可能需要适应所有类型的编辑器才能正确地“粘贴”字符串。此脚本利用以文件名作为参数调用大多数编辑器的好处打开该文件进行编辑,从而在编辑器中“粘贴”$original_content