![스크립트에서 $EDITOR를 사용하여 사용자에게 입력을 요청하려면 어떻게 해야 합니까?](https://linux55.com/image/13461/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%24EDITOR%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EC%9A%94%EC%B2%AD%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
. 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
임시 파일 생성 및 삭제는 본인이 담당합니다.