开发者

Capture user input by opening a text editor with content

From a bash script, I'd like to

  1. Open the default text editor for current user
  2. Paste a string $original_content in it
  3. Once the user modifies the content then closes the text editor,
  4. Capture the modified string into a variable $modified_content
  5. Then save $modified_content to an $output_file
开发者_StackOverflow社区

Google searches for capturing user input shows read which is not what I'm looking for.

Can someone point me to the right direction?

Thank you


This method should hopefully work for most editors:

#!/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

This script may be a little drawn out but it performs all the actions you wanted except for the pasting part, since you'd probably have to accommodate for all varieties of editors to properly "paste" a string. This script utilizes the benefit that calling most editors with a filename as a parameter opens that file for editing thereby "pasting" your $original_content in the editor.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜