강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

2. 쉘프로그램내에서 사용자 입력값 받아서 처리하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

2. 쉘프로그램내에서 사용자 입력값 받아서 처리하기

 

사용자 입력값 처리하는 read 기본 사용법

 

쉘프로그램에서도 사용자가 키보드로 입력한 값을 받아들여서 처리하는 방법이 있습니다. , read라는 쉘명령어문이 역할을 충분히 있습니다. , read문으로 뭔가를 받아들이기 위하여 선택하라는 메시지를 출력하고 사용자가 입력한 내용을 받아서 지정한 변수에 저장하여 이를 echo문으로 출력하는 예입니다. , read문에서 특정메시지를 출력하려면 -p옵션을 사용합니다.

 

아래의 예는 read문에서 “Select Number(1,2,3 or 4):”라는 메시지를 먼저 출력한 후에 MENU1 이라는 변수에 사용자가 입력한 내용을 받아서 저장합니다. 그리고 echo문에서 이를 출력하는 예입니다.

[root@command root]# cat read04.sh

#!/bin/bash

 

read -p "Select Number (1,2,3 or 4):" MENU1

echo "You select number $MENU1"

[root@command root]#

 

read -p "Select Number (1,2,3 or 4):" MENU1

화면에 “Select Number (1,2,3 or 4):” 먼저 출력이 후에 사용자의 입력을 대기합니다. 그리고 사용자가 입력한 내용을 MENU1 저장합니다.

 

echo "You select number $MENU1"

MENU1 저장된 내용을 echo문으로 출력합니다.

 

아래는 쉘프로그램을 실행한 예입니다.

[root@command root]# ./read04.sh 

Select Number (1,2,3 or 4):4

You select number 4

[root@command root]#

 

위의 예에서 사용자는 4 입력하였습니다. 따라서 MENU1에는 4 저장이 되고 echo문으로 “You select number 4”라는 결과가 출력된 것입니다.

 

 

쉘프로그램내에서 read문에서 배열로 받아서 처리하기

 

쉘프로그램에서도 배열로 입력받아서 처리하는 것이 가능합니다. , read문에서 특정 변수를 배열변수로 사용하여 입력되는 내용들이 차례대로 배열요소에 저장되도록 있습니다. read문에서 배열변수의 사용은 아래 규칙을 준수하셔야 합니다.

 

-    입력내용을 받아들일 지정된 변수를 배열변수로 사용하려면 -a옵션을 사용하셔야합니다.

-    쉘프로그램에서도 C 마찬가지로 배열인자는 0부터 시작합니다.

-    배열변수를 출력하려면 ${변수명[인자]} 같은 형식으로 사용하셔야 합니다.

 

아래의 예는 read문으로 사용자의 입력내용을 받아들일 때에 입력한 내용을 배열변수에 각각 저장하기 위하여 TEL변수를 배열변수로 사용하였습니다. 이때 TEL변수를 배열변수로 사용하기 위하여 -a옵션을 사용하였습니다. , read문에서 -a옵션을 사용하면 지정된 변수는 배열변수로 인식합니다. 

 

따라서 입력된 내용이 TEL[0], TEL[1], TEL[2]… 순차적으로 각각 저장이 됩니다. 그리고 아래 echo문에서 배열요소들을 지정된 형식대로 출력한 것입니다.  쉘프로그램은 다음과 같습니다.

[root@command root]# cat read05.sh

#!/bin/bash

 

echo "Input your PHONE NUMBER"

read -a TEL

echo "Your Phone Number : ${TEL[0]}-${TEL[1]}-${TEL[2]}"

[root@command root]#

 

echo "Input your PHONE NUMBER"

“Input your PHONE NUMBER”이라는 메시지를 화면으로 출력합니다.

 

read -a TEL

-a옵션에 의해 TEL변수가 배열변수로 사용되어 사용자가 입력하는 내용을 차례대로 TEL[0], TEL[1], TEL[2],… 저장합니다.

 

echo "Your Phone Number : ${TEL[0]}-${TEL[1]}-${TEL[2]}"

입력된 내용을 echo문으로 출력한 것으로 배열변수에 저장된 내용을 출력할 때에는 ${TEL[0]} 같은 형식으로 지정하시면 됩니다.

 

아래는 쉘프로그램을 실행한 예입니다.

[root@command root]# ./read05.sh

Input your PHONE NUMBER

011 777 8888

Your Phone Number : 011-777-8888

[root@command root]#

 

쉘프로그램을 실행하면 먼저 “Input your PHONE NUMBER”라는 메시지가 출력이 되면서 사용자의 입력을 기다리고 있습니다. 그리고 위에서 사용자가 입력한 값이 “011 777 8888”이므로 TEL이라는 배열변수에 다음과 같이 차례대로 입력됩니다. TEL[0] 011 저장되고 , TEL[1]에는 777 저장되며, TEL[2]에는 8888 차례대로 저장됩니다. 그리고 아래에 “Your Phone Number : 011-777-8888”라는 결과가 출력된 것입니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,157 명
  • 현재 강좌수 :  36,515 개
  • 현재 접속자 :  230 명