スクリプトで$ EDITORを使用してユーザーに入力を要求するにはどうすればよいですか?

スクリプトで$ EDITORを使用してユーザーに入力を要求するにはどうすればよいですか?

git commitスクリプトが実行されたら、エディタを開き、一時ファイルを編集し、そのファイルを入力として使用してからファイルを削除する必要があります。

答え1

1つの解決策は、組み込みreadコマンドを使用することです。

 read -r -p 'Please enter your favorite editor' editor
 echo "You have enter $editor"

値が$editor"変数にあるので、次のステップはエディタが実際にインストールされているかPATHにあるかをテストすることです。

if type "$editor" >/dev/null 2>&1; then
   command "$editor" ENTER_THE_FILE_YOU_WANT_TO_EDIT
else
   echo "$editor no such file or directory!" >&2
   exit 127
fi

バラより

help type
help command

127終了状態は、実行可能ファイル、別名、または関数がない場合にシェルが終了する状態です。見る

 man 1p exit

答え2

あなたはそれを使用することができますvipe何も(またはいくつかの基本テキスト)入力なし:

% foo=$(echo | vipe)
# opens an editor, I add `foo bar`
% echo "$foo"
foo bar

vipe一時ファイルの作成および削除は、本人が担当します。

関連情報