Enter누르면 텍스트 파일에 한 줄을 추가하는 스크립트를 작성해야 합니다.
그러나 Ctrl+를 누르면 Dbash에서 루프를 종료해야 합니다 .
touch texttest.txt
LINE="0"
while true; do
read LINE;
if [ "$LINE" == "^D" ]; then
break
else
echo "$LINE" >> texttest.txt
fi
done
현재 비슷한 것이 있지만 대신 Ctrl+를 눌렀을 때 while 루프를 종료하는 방법을 알 수 없습니다 .DEnter
답변1
당신은 너무 많이 생각합니다. 필요한 것은 이것뿐입니다:
cat > texttest.txt
다르게 말하지 않으면 Cat은 STDIN에서 읽습니다. STDIN에서 읽기 때문에 지정하지 않고도 Ctrl제어 문자 +에 반응합니다 . +는 하위 프로세스를 완료할 수 있는 유일한 것이므로 D루프 로 래핑할 필요조차 없습니다.CtrlDcat
답변2
다음을 수행할 수 있습니다.
while read -r LINE ; do
echo "$LINE" >> texttest.txt
done
- 파일을 먼저 터치할 필요는 없습니다.
LINE
변수를 초기화할 필요가 없습니다.- Ctrl+D
read
널이 아닌(거짓) 종료 코드로 종료 되도록 하는 표준 입력을 닫습니다.