Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 티스토리챌린지
- cursorai
- git
- iBatis
- 오블완
- zset
- PostgreSQL
- analytics4
- MariaDB
- pandas
- mssql
- 자바
- Linux
- docker
- Kibana
- 리눅스
- Python
- SQL
- oracle
- spring
- Javascript
- codeium
- 명령어
- DBMS
- java
- mysql
- error
- 쉘스크립트
- github
- IntelliJ
Archives
- Today
- Total
hanker
Linux - read 명령어 (입력 값을 변수에 저장하는 명령어) 본문
반응형
read 명령어는 표준 입력(키보드 등)으로부터 한 줄(또는 지정한 개수)의 데이터를 읽어 변수에 저장한다.
다양한 옵션으로 프롬프트, 타임아웃, 숨김 입력, 구분자 지정 등을 제어할 수 있다.
1. 옵션 설명
옵션 | 설명 |
-p <문자열> | 입력 전에 <문자열>을 프롬프트로 출력 |
-s | 입력 내용을 화면에 표시하지 않음(비밀번호 입력 등) |
-n <숫자> | 최대 <숫자> 글자만 읽고 즉시 리턴 |
-t <초> | 표준 입력 대기 최대 <초> 초, 시간 초과 시 실패 |
-d <구분자> | 기본 \n 대신 <구분자>까지 읽음 |
-a <배열이름> | 공백 기준으로 읽은 단어들을 배열로 저장 |
-r | 백슬래시(\)를 특별 문자로 해석하지 않음 (기본 동작은 특별 처리) |
-e | Readline 편집 기능 활성화 (커서 이동·이전 히스토리 등) |
2. 옵션 별 실행 결과
1-1. -p : 프롬프트 메시지 출력
#!/bin/bash
read -p "이름을 입력하세요: " name
echo "안녕하세요, $name 님!"
1-2. -s : 비밀번호 숨김 입력
read -s -p "비밀번호: " passwd
echo "입력하신 비밀번호는 $(echo ${#passwd})글자입니다."
1-3. -n : 1글자만 읽기
read -n 1 -p "계속하려면 아무 키나 누르세요..." key
echo "누르신 키: '$key'"
1-4. -t : 대기 시간 지정
read -t 5 -p "5초 내에 입력해주세요: " input
echo "$input"
1-5. -d : 해당 구분자까지 읽기
echo "a,b,c" | { IFS= read -d ',' v1; IFS= read -d ',' v2; echo "$v1, $v2"; }
1-6. -a : 배열로 저장 (공백 기준)
read -a arr -p "단어 여러 개를 입력하세요: "
echo "첫 번째 단어: ${arr[0]}, 두 번째 단어: ${arr[1]}"
1-7. -r : 백슬래시 무시
read -r -p "문장 입력: " line
echo "해석된 내용: $line"
3. 성능·보안 고려사항
성능
- read 자체는 입력 대기 성격이므로 성능 이슈 없음
- 다만 -t 옵션 사용 시 짧은 대기 시간 설정이 필요하다면 너무 작은 값은 사용자 편의 저해 가능
보안
-s 옵션으로 비밀번호 등 민감 정보를 화면에 노출하지 않게 변경 가능
-r 옵션을 사용하지 않으면 백슬래시가 이스케이프 처리되어 예상치 못한 동작이 발생할 수 있다.
반응형
'SERVER > Linux' 카테고리의 다른 글
[리눅스] zip, unzip 명령어 (압축 및 압축 해제 명령어 및 옵션표) (0) | 2025.04.25 |
---|---|
[리눅스 쉘 스크립트] 디렉터리 내 모든 파일들의 특정 문자열 제거 (0) | 2025.04.24 |
Linux - 쉘 스크립트 if문 (조건에 따라 스크립트 흐름을 분기 처리) (0) | 2025.04.17 |
Linux - 쉘 스크립트 기본 구조 및 생성, 실행 (0) | 2025.04.14 |
Linux - useradd (새 사용자 계정 생성) (0) | 2025.03.30 |