Capture user input by opening a text editor with content
From a bash script, I'd like to
- Open the default text editor for current user
- Paste a string
$original_content
in it - Once the user modifies the content then closes the text editor,
- Capture the modified string into a variable
$modified_content
- Then save
$modified_content
to an$output_file
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.
精彩评论