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

레벨240-6 : 쉘프로그램내에서 read문에서 배열로 받아서 처리하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨240-6 : 쉘프로그램내에서 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,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  91 명