스크립트에서 $EDITOR를 사용하여 사용자에게 입력을 요청하려면 어떻게 해야 합니까?

스크립트에서 $EDITOR를 사용하여 사용자에게 입력을 요청하려면 어떻게 해야 합니까?

. git commit​스크립트가 실행되면 편집기를 열어 임시 파일을 편집하고 해당 파일을 입력으로 사용한 다음 파일을 삭제해야 합니다.

답변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임시 파일 생성 및 삭제는 본인이 담당합니다.

관련 정보