Enter를 누르면 텍스트 파일에 한 줄을 추가하는 스크립트를 작성해야 합니다 .
하지만 Ctrl+를 D누르면 bash에서 해당 루프를 종료해야 합니다.
touch texttest.txt
LINE="0"
while true; do
read LINE;
if [ "$LINE" == "^D" ]; then
break
else
echo "$LINE" >> texttest.txt
fi
done
Ctrl현재 이와 같은 것이 있지만 대신 +를 D누르면 while 루프를 종료하는 방법을 알 수 없습니다 Enter.
답변1
당신은 그것을 지나치게 생각하고 있습니다. 필요한 것은 이것이다:
cat > texttest.txt
Cat은 사용자가 다르게 지정하지 않은 경우 STDIN에서 읽습니다. STDIN에서 읽기 때문에 사용자가 지정하지 않고도 제어 문자 Ctrl+ 에 반응합니다. D그리고 Ctrl+가 하위 프로세스 D 를 완료하는 유일한 것이므로 cat
루프로 래핑할 필요조차 없습니다.
답변2
다음이 수행됩니다.
while read -r LINE ; do
echo "$LINE" >> texttest.txt
done
- 파일을 먼저 만질 필요는 없습니다
LINE
변수를 초기화할 필요가 없습니다- Ctrl+D
read
null이 아닌(거짓) 종료 코드로 종료 하는 stdin을 닫습니다.