관련포스팅
2024.07.13 - [Linux] - [Linux] 쉘 스크립트 사용하기(변수 선언, 조건문 IF)
2024.07.15 - [Linux] - [Linux] 쉘 스크립트 사용하기(반복문 for, while)
1. read 명령어
read 명령어는 쉘 스크립트 실행 시 입력 값을 받아야 할 때 주로 사용한다.
기본 사용 방법은 아래와 같다.
# test.sh
read -p "당신의 나이를 입력해주세요. : " age
echo $age
# 출력
당신의 나이를 입력해주세요. : 28
28
스크립트 실행 시 read 명령에 정의한 문자열이 출력되고 값을 입력하면 age 변수로 들어가게 된다.
변수 선언을 안하고 read 명령어를 사용할 시 $REPLY를 사용하여 입력 값을 확인할 수 있다.
# test.sh
read -p "당신의 나이를 입력해주세요. : "
echo $REPLY
# 출력
당신의 나이를 입력해주세요. : 28
28
여러 개의 변수를 선언하여 사용할 수도 있다. 입력 시 공백(space bar)을 통해 구분을 한다.
# test.sh
read -p "당신의 이름을 입력해주세요. : " first second third
echo -n $first
echo -n $second
echo $third
# 출력
당신의 이름을 입력해주세요. : 홍 길 동
홍 길 동
특정 값이 입력이 될 때까지 반복 read를 구현하고 싶다면 아래와 같이 작성하면 된다.
0을 입력하면 END 문자와 함께 입력 명령이 종료된다.
# test.sh
while read -p "숫자를 입력해주세요. : " A
do
if [ $A -eq 0 ]; then
echo "END"
break
fi
echo $A
done
# 출력
숫자를 입력해주세요. : 1
1
숫자를 입력해주세요. : 2
2
숫자를 입력해주세요. : 0
END
2. read 옵션
read 옵션은 여러가지가 있다. 그중 자주 사용하는 것들을 정리해 보았다.
-p | 프롬프트 문자열 출력 | -a | 입력 시 배열 형태로 반환 |
-s | 입력 시 입력값 숨김 | -r | \ (백슬래시) 입력 가능 |
-t {시간} | 입력 받을 시간을 지정 | -n {길이} | 길이만큼 입력 시 입력 반환 |
-p 옵션은 입력 값을 받을 때 프롬프트 문자열을 출력해 준다.
# test.sh
read -p "당신의 이름을 입력해주세요. : " name
echo $name
# 출력
당신의 이름을 입력해주세요. : 홍길동
홍길동
-a 옵션은 입력 값을 배열 형태로 사용할 수 있게 해 준다. 입력 시 공백(space bar)을 통해 구분을 한다.
# test.sh
read -p "당신의 이름을 입력해주세요. : " -a name
echo ${name[0]}
echo ${name[1]}
echo ${name[2]}
echo ${name[3]} # 해당 인덱스에 값이 없는 경우 빈 문자열로 출력
echo ${name[@]} # 배열에 있는 값 모두 출력
# 출력
당신의 이름을 입력해주세요. : 홍 길 동
홍
길
동
홍 길 동
-s 옵션은 입력 값을 입력할 때 값을 숨겨준다. 비밀번호 기능을 구현할 때 사용하면 좋은 옵션이다.
# test.sh
read -p "비밀번호를 입력해주세요. : " -s password
# 출력
비밀번호를 입력해주세요. : # 입력할 때 입력 값이 보이지 않는다.
-r 옵션은 ' \ ' (백슬래시) 를 입력할 수 있게 해 준다.
# test.sh
read -p "문자열을 입력해주세요. : " -r A
echo $A
# 출력
문자열을 입력해주세요. : \HELLO\
\HELLO\
-t 옵션은 입력 제한시간을 지정해 준다. 지정한 숫자는 초단위이며, 제한시간이 지나면 자동 입력 종료가 된다.
# test.sh
read -p "문자열을 입력해주세요. : " -n 5 A # 5초 뒤에 자동 입력 종료된다.
echo $A
# 출력
문자열을 입력해주세요. : hello
# 제한시간 안에 입력 후 Enter 키를 누르지 않으면 종료된다.
-n 옵션은 입력 제한길이를 지정해준다. 지정한 길이만큼 입력하면 입력 값이 자동 반환된다.
# test.sh
read -p "문자열을 입력해주세요. : " -n 3 A
echo ""
echo $A
# 출력
문자열을 입력해주세요. : HEL # HELLO를 입력하려 했지만 입력 제한길이가 3이기에 자동 반환되었다.
HEL
'Server > Linux' 카테고리의 다른 글
[Linux] 쉘 스크립트 사용하기(반복문 for, while) (0) | 2024.07.15 |
---|---|
[Linux] 쉘 스크립트 사용하기(변수 선언, 조건문 IF) (0) | 2024.07.13 |