리눅스 read 명령어는 사용자로부터 입력을 받은 값을 출력하는 명령어로 자주 사용하는 옵션에 대한 내용과 쉘 스크립트에서 read 명령어를 사용하는 방법, read 명령어로 배열 입력을 받아 출력하는 방법에 대해 알아보겠습니다.
※ 목차 구성
1) 리눅스 read 명령어란?
2) 리눅스 read 명령어 사용법
3) 쉘 스크립트 read 명령어 사용 예시
4) 쉘 스크립트 read 배열 입력받기
리눅스 read 명령어란?
리눅스 read 명령어는 표준 입력인 키보드로부터 사용자의 입력을 받아 변수에 저장하는 명령어입니다.
리눅스 read 명령어 사용법
read 명령어 기본 사용법
리눅스 read 명령어는 한 행에 한 개 또는 여러 단어로 나누어 변수를 지정할 수 있습니다. 아래 예시는 read 명령어로 한 행에 a와 b, c의 변수를 할당하여 출력한 예시입니다. 또한 변수보다 입력한 단어가 많으면 마지막 변수에 모두 할당되어 아래 예시의 c 변수에는 melon과 orange가 할당된 예시입니다.
root@server # read a b c
apple banana melon orange
root@server # echo $a
apple
root@server # echo $b
banana
root@server # echo $c
melon orange
하지만 read 명령어에 변수를 할당하지 않고 표준 입력(키보드)을 받았을 때 변수가 없기 때문에 REPLY 변수에 할당됩니다.
root@server # read
Hello Word
root@server # echo $REPLY
Hello Word
read 명령어 -p 옵션
리눅스 read 명령어 -p 옵션은 prompt의 약자로 문자열을 입력한 것을 출력하고 표준 입력(키보드)으로 받은 내용을 변수에 저장합니다.
read -p "{문자열}" {변수}
아래 예시는 "What's your name?: "을 출력하고 "My name is Kim"을 표준 입력으로 입력하였으며 이 값은 name 변수에 할당됩니다.
root@server # read -p "What's your name?: " name
What's your name?: My name is Kim
root@server # echo $name
My name is Kim
쉘 스크립트 read 명령어 사용 예시
쉘 스크립트에 read 명령어를 활용한 예시로 echo의 -n 옵션은 줄 바꿈을 하지 않습니다. age라는 변수를 표준 입력으로 받아 You are $age years old를 출력하는 스크립트로 표준 입력(키보드)을 받은 것은 age 변수에 할당되어 출력되게 됩니다.
root@server # cat -n test_script.sh
1 #!/bin/bash
2
3 echo -n "age: "
4 read age
5 echo "You are $age years old"
root@server # ./test_script.sh
age: 20
You are 20 years old
위 예시의 3번과 4번 줄을 한 행으로 줄이는 방법은 read 명령어의 -p 옵션을 활용하여 문자열을 입력한 것을 출력하고 표준 입력(키보드)을 받은 것을 age에 할당하고 같은 값을 출력하는 예시입니다. 위 내용과 결과는 같고 쉘 스크립트의 3번과 4번 줄을 하나로 줄이는 예시입니다.
root@server # cat -n test_script.sh
1 #!/bin/bash
2
3 read -p "age: " age
4 echo "You are $age years old"
root@server # ./test_script.sh
age: 20
You are 20 years old
쉘 스크립트 read 배열 입력받기
리눅스 read 명령어의 -a 옵션은 array의 약자로 변수의 할당된 값들을 배열로 할당하는 옵션입니다. 아래 예시는 프롬프트에서 read 명령어를 이용하여 -a 옵션을 사용했고 number 변수에는 apple01번부터 apple05번까지 배열에 할당되었습니다.
root@server # read -a number
apple01 apple02 apple03 apple04 apple05
root@server # echo ${number[0]}
apple01
root@server # echo ${number[4]}
apple05
root@server # echo ${number[@]}
apple01 apple02 apple03 apple04 apple05
'IT > 리눅스 쉘 스크립트' 카테고리의 다른 글
리눅스 배열 선언 응용 사용법 - ls 배열, 쉘스크립트 배열, for문 배열 (9) | 2023.01.07 |
---|---|
리눅스 쉘스크립트 예제와 함께하는 매개변수의 이해 - 인수 전달 (1) | 2023.01.04 |
[shell script] 쉘 스크립트 기초 #10 - 제어문 until문 설명 및 예제 (62) | 2022.08.07 |
[shell script] 쉘 스크립트 기초 #9 - 제어문 while문 설명 및 예제 (45) | 2022.07.16 |
[shell script] 쉘 스크립트 기초 #8 - 제어문 select문 설명 및 예제 (43) | 2022.06.16 |
댓글