[Linux 셸 스크립트] 사용자 인터페이스 - 003 키보드에서 사용자 키 입력을 획득해서 변수값으로 이용하기
본문 바로가기
IT 이야기/Linux 셸 스크립트

[Linux 셸 스크립트] 사용자 인터페이스 - 003 키보드에서 사용자 키 입력을 획득해서 변수값으로 이용하기

by 찬찬이 아빠 2021. 3. 2.
반응형
  1. 사용 명령어

(1) read

 

  2. 키워드 & 사용처

(1) 키워드

표준 입력, 키보드

 

(2) 사용처

키보드에서 입력받은 값을 써서 대화형 처리를 하고 싶을 때 사용합니다.

 

  3. 실행 예제
$ ./read.sh
Enter your ID: guest
Now your ID is geust  <- 입력된 값을 표시

 

  4. 스크립트

#!/bin/sh

 

echo -n "Enter your ID : "

read id             

 

echo "Now your ID is $id"         

 

 

  5. 해설

이 스크립트는 사용자가 키보드로 ID를 입력하면 셸 스크립트 내부에서 그 값을 변수로 이용하여 ID를 표시합니다.

 

셸 스크립트가 키보드에서 입력된 값을 얻으려면 read 명령어를 사용합니다. read 명령어는 처럼 값을 넣고 싶은 변수를 인수로 받습니다. 즉 이 예제에서는 셸 변수 id에 사용자가 입력한 값이 대입되어 사용자 입력을 얻을 수 있습니다.

에서 입력된 값을 써서 메시지를 표시합니다. 변수 id에는 사용자가 입력한 ID가 대입되어 있으므로 입력된 ID에 따라 처리를 작성하면 됩니다.

 

한편, read 명령어로 여러 입력값을 받고 싶을 때는 다음처럼 read 명령어 뒤에 복수 개의 변수를 스페이스로 구분지어 나열합니다.

echo -n "Enter your ID NAME NUMBER : "
read id name number

 

 

사용자가 다음처럼 입력하면 변수 id에는 guest, 변수 name에는 Park, 변수 number에는 103이 들어갑니다.

Enter your ID NAME NUMBER : guest Park 103

 

사용자 입장에서 여러 값을 한 줄로 입력하는 방식은 불편합니다. 실제로는 하나씩 입력하는 편이 편리합니다.

echo -n "Enter your ID : "
read id
echo -n "Enter your NAME : "
read name
echo -n "Enter your NUMBER : "
read number

echo "Now your ID is $id."
echo "NAME : $name, NUMBER : $number"

 

 

 

<주의사항>

  • read 명령어를 실행하면 사용자 입력을 기다리므로 스크립트 실행이 일시정지됩니다. 따라서 다음처럼 단순히 스크립트를 일시정지하고 싶을 때에도 read 명령어를 이용합니다. 이때 입력값은 필요없으므로 대입하는 셸 변수는 더미(dummy)입니다.
#!/bin/sh

echo "Input any key to continue..."
read dummy
echo "Script start."

 

 

 

 

참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전

반응형

댓글