Bash 스크립트에서 사용자 입력을 받거나 파일로부터 데이터를 읽어들이는 데 사용하는 명령어가 바로 read입니다. read 명령은 간단하면서도 강력한 기능을 제공하여, 사용자 상호작용이 필요한 자동화 작업이나 데이터를 입력받아 처리하는 로직을 작성할 때 자주 활용됩니다. 이 글에서는 read 명령의 역할, 사용법, 다양한 옵션들과 실제 예제까지 상세히 설명하겠습니다.
Bash에서 read 명령의 역할
read 명령은 표준 입력(예: 키보드, 파일 등)으로부터 데이터를 읽어 변수에 저장하는 기능을 합니다. 가장 흔한 용도는 사용자로부터 값을 입력받는 것이며, 스크립트 실행 중 동적인 데이터 수집이 가능하게 해줍니다.
read 명령의 기본 사용법
기본 구조는 다음과 같습니다:
read 변수명
예제:
echo "이름을 입력하세요:"
read name
echo "입력한 이름은 $name 입니다."
결과:
이름을 입력하세요:
> 사용자 입력
입력한 이름은 사용자 입력 입니다.
read 명령의 옵션들과 세부 사용법
1. -p (프롬프트 메시지)
역할: 사용자 입력 전 메시지를 출력
사용법: read -p "메시지" 변수명
예제:
read -p "나이를 입력하세요: " age
echo "당신의 나이는 $age 입니다."
결과: 메시지를 출력한 후 입력을 기다립니다.
2. -s (비밀번호 입력 등, 입력 숨김)
역할: 입력 중 화면에 표시되지 않게 처리
사용법: read -s 변수명
예제:
read -sp "비밀번호를 입력하세요: " password
echo "\n비밀번호가 입력되었습니다."
결과: 비밀번호 입력 시 화면에 표시되지 않습니다.
3. -t (입력 제한 시간 설정)
역할: 지정한 시간 내 입력이 없으면 종료
사용법: read -t 시간 변수명
예제:
read -t 5 -p "5초 안에 이름을 입력하세요: " name || echo "시간 초과"
결과: 5초 안에 입력하지 않으면 "시간 초과" 메시지를 출력합니다.
4. -n (입력 받을 문자 수 지정)
역할: 입력 받을 문자 수를 제한
사용법: read -n 문자수 변수명
예제:
read -n 1 -p "계속하려면 아무 키나 누르세요..." key
echo "\n입력한 키: $key"
결과: 사용자가 키 하나를 누르면 바로 진행됩니다.
5. -a (배열로 입력 받기)
역할: 공백으로 구분된 값을 배열로 저장
사용법: read -a 배열명
예제:
echo "단어들을 입력하세요 (공백으로 구분):"
read -a words
echo "첫 번째 단어: ${words[0]}"
결과: 입력된 문자열이 배열로 저장되고, 원하는 요소를 출력할 수 있습니다.
6. -d (종료 문자 지정)
역할: 기본 엔터 대신 다른 문자로 입력 종료
사용법: read -d '종료문자' 변수명
예제:
read -d ':' input
echo "입력된 내용: $input"
결과: 사용자가 ':'를 입력할 때까지 값을 받습니다.
7. 여러 변수에 동시에 입력 받기
역할: 입력값을 공백 기준으로 여러 변수에 나눠 저장
사용법:
read var1 var2 var3
예제:
echo "이름, 나이, 도시를 입력하세요:"
read name age city
echo "$name, $age세, $city에 거주"
결과: 입력된 세 개의 단어가 각각 변수에 저장됩니다.
실제 사용 예제와 결과
예제 스크립트: 사용자 정보 입력
#!/bin/bash
read -p "이름: " name
read -p "이메일: " email
read -sp "비밀번호: " password
echo
read -p "도시에 거주하시나요? (yes/no): " answer
if [ "$answer" == "yes" ]; then
echo "$name 님은 $email 주소를 가지고 있으며 도시에 거주합니다."
else
echo "$name 님은 $email 주소를 가지고 있으며 도시에 거주하지 않습니다."
fi
결과 예시:
이름: 홍길동
이메일: hong@test.com
비밀번호: (숨김 입력)
도시에 거주하시나요? (yes/no): yes
홍길동 님은 hong@test.com 주소를 가지고 있으며 도시에 거주합니다.
Bash의 read 명령은 매우 다양한 입력 시나리오에 대응할 수 있는 유연함을 제공합니다. 옵션들을 적절히 조합하면 사용자와 상호작용하는 강력한 스크립트를 만들 수 있으며, 실무 자동화에서 매우 유용하게 활용됩니다.
'개발 > Bash 쉘스크립트' 카테고리의 다른 글
[Bash] 리눅스 쉘 스크립트: set 기본 사용 법 및 옵션 까지 모두 정리 (1) | 2025.05.05 |
---|---|
[Bash] 리눅스 쉘 스크립트: echo 기본 사용 법 및 옵션 까지 모두 정리 (4) | 2025.05.04 |
[Bash] 리눅스 쉘 스크립트: while 문 기본 사용 법 및 옵션 까지 모두 정리 (0) | 2025.05.04 |
[Bash] 리눅스 쉘 스크립트: for 문 기본 사용 법 및 옵션 까지 모두 정리 (2) | 2025.05.04 |
[Bash] 리눅스 쉘 스크립트: if 문 기본 사용 법 및 옵션 까지 모두 정리 (0) | 2025.05.04 |