"linux/script/read"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2018년 4월 4일 (수) 12:27 기준 최신판
쉘스크립트 관련
- 리눅스 > 쉘스크립트linux/script (12)
- 리눅스 > 쉘스크립트 > 배열(Array)linux/script/array
- 리눅스 > 쉘스크립트 > 셈플linux/script/example (2)
- 리눅스 > 쉘스크립트 > 셈플 > 메모리 사용량linux/script/example/free memory
- 리눅스 > 쉘스크립트 > 셈플 > MySQL 백업linux/script/example/mysql backup
- 리눅스 > 쉘스크립트 > 파일linux/script/file
- 리눅스 > 쉘스크립트 > 함수(Function)linux/script/function
- 리눅스 > 쉘스크립트 > 문자열입력받기linux/script/read
- 리눅스 > 쉘스크립트 > 변수(Variable)linux/script/variable
Linux Bash shell script에서 문자열 입력 받기
옵션
-n number : number 수만큼의 문자를 입력받음 -p string : 프로프트에 string 문자열 출력 -a : 입력을 Array형태로 저장 -s : 입력을 프로프트에 출력하지 않음 -d char : 입력이 char 이면 read 명령을 종료함.
사용법
#!/bin/sh
# 변수가 한개일경우
read value <<< "1 2 3 4 5"
echo "test1 [${value}]"
# 변수 개수가 부족할 경우 나머지 값은 마지막 변수에 할당
# 값은 IFS에 정의된 값으로 분리
read value1 value2 value3 <<< "1 2 3 4 5"
echo "test2 [${value1}] [${value2}] [${value3}]"
# 변수명에 _ 을 사용할경우 해당 값은 무시됨.
read value1 _ value2 _ value3 <<< "1 2 3 4 5"
echo "test3 [${value1}] [${value2}] [${value3}]"
결과
test1 [1 2 3 4 5] test2 [1] [2] [3 4 5] test3 [1] [3] [5]
\문자 입력 허용(옵션 -r)
읽을 데이터에서 "\" 문자 입력을 허용#!/bin/sh
# \(역슬래쉬)문자 입력 불가
read value <<< "1\n2\t3 4 5"
echo "test4 [${value}]"
# \(역슬래쉬)문자 입력 가능
read -r value <<< "1\n2\t3 4 5"
echo "test5 [${value}]"
결과
test4 [1n2t3 4 5] test5 [1\n2\t3 4 5]
배열입력(옵션 -a)
읽은 데이터를 배열(Array)에 입력#!/bin/sh
# 변수가 한개일경우
read -a value <<< "1 2 3 4 5"
echo "test6 [${value}]"
echo "test7 [${value[2]}]"
결과
test6 [1] test7 [3]
키보드 입력 받기
read -n 1 -p "input [y/N]:"
echo "$REPLY"
#기본적으로 read는 입력값을 REPLY 변수에 저장함
read -n 1 -p "input [y/N]:" yesno
echo "$yesno"
#입력값을 REPLY이 아닌 yesno 변수에 저장
read -p "input yes|no count :" yesno count
echo "$yesno"
echo "$count"
#입력값을 순차적으로 yesno, count에 저장
#구분자는 기본 공백, 구분자를 변경하려면 IFS 값을 설정