Захват пользовательского ввода, открыв текстовый редактор с контентом - PullRequest
1 голос
/ 11 сентября 2011

Из скрипта bash я бы хотел

  1. Открыть текстовый редактор по умолчанию для текущего пользователя
  2. Вставить в него строку $original_content
  3. Как только пользователь изменяет содержимое, затем закрывает текстовый редактор,
  4. Сохраняет измененную строку в переменную $modified_content
  5. Затем сохраняет $modified_content в $output_file

Google ищет записи ввода пользователя показывает read, что не то, что я ищу.

Может ли кто-нибудь указать мне правильное направление?

Спасибо

1 Ответ

2 голосов
/ 11 сентября 2011

Надеемся, что этот метод должен работать для большинства редакторов:

#!/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 в редактор.

...