레벨240-6 : 쉘프로그램내에서 read문에서 배열로 받아서 처리하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,895 조회
- 0 추천
- 목록
본문
레벨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”라는 결과가 출력된 것입니다.
관련자료
-
이전
-
다음