[Shell Script 5] 파일을 읽어서 처리할 때 키보드에서 입력받기

 

파일을 읽어서 처리할 때 키보드에서 입력받기 


이 스크립트는 question.txt에 있는 질문을 한 줄씩 순서대로 표현하며 키보드에서 입력된 디렉터리 속 파일을 ls 명령어로 표시합니다 . 

question.txt 파일에는 다음과 같은 내용이 들어있습니다 .
Input Target Directory :
===================================================================
read 명령어는 표준 입력 ( 키보드에서 입력) 을 읽어서 그 값을 셸 변수에 대입하지만 파일 내용을 한 줄씩 읽어서 셸 변수에 대입할 수 있습니다 . 
#1 처럼 while 조건식에 read 명령어를 지정함과 동시해 #2처럼 done 직후에 리다이렉트를 쓰면 while 루프 전체에 입력 리다이렉트를 합니다 . 
이렇게 하면 파일내용을 read 명령어가 한줄씩 읽어서 셸 변수 question에 대입합니다.
따라서 #3 처럼 미리 터미널 정보를 명령어 치환으로 저장합니다 . 
셸 스크립트에서는 명령행을 ''(따음표) 로 감싸면 그부분을 명령어 실행된 결과로 바뀌므로 이것을 명령어 치환 이라고 합니다 .

표준 입력이 리다이렉트된 처리안에서도 4#처럼 단말 정보를 직접 리다이렉트하면 while 반복문에서 이미다른 read 명령어로 리다이렉트 하고 있더라도 문제 없이 키보드 입력을 받습니다 .   



댓글