Bash에서 한 줄을 변수로 읽으려면 다음을 실행합니다.
read -p "here:" _msg; echo "${_msg}" > _read
xyz123
에 대한 기대를 가지고 실수 로 먼저 _msg
만들었 는데 이제 커서를 이동 한 다음 계속 입력 하려면 세 번 탭 123
해야 하는데 모드에 들어가는 것과 똑같을 것 같습니다 .←1
xyz
INSERT123
xyz
here:xyz
그런 다음 최종 파일을 확인했습니다.
xxd _read
나는 가지고있다
00000000: 7879 7a1b 5b44 1b5b 441b 5b44 3132 330a xyz.[D.[D.[D123.
입력된 제어 문자를 무시하는 방법
Windows의 MINGW64에서 bash를 실행하고 있습니다.
답변1
bash
man bash
( ) 에 대한 문서 , 특히 설명 부분을 읽으면 read
추가 옵션이 있음을 알 수 있습니다.
-e
표준 입력이 터미널에서 나오는 경우readline
(위의 READLINE 참조) 라인을 가져오는 데 사용됩니다.
그렇지 않으면 다음 지침을 따르십시오.
독서선이것은 대화형 셸을 사용할 때 입력 읽기를 처리하는 라이브러리입니다. [...]
이 지시문을 적용하면 다음을 얻을 수 있습니다.
read -e -p "here:" _msg; printf '%s\n' "$_msg" > _read
을 입력한 후 123
세 개의 커서가 떠나고 abc
파일에서 다음을 얻습니다 _read
.
hexdump -C _read
00000000 61 62 63 31 32 33 0a |abc123.|