Shell - 7.Input & Output
참고 강의 : TTABAE-LEARN
Contents
- 7-1. echo
- 7-2. read
- 7-3. printf
7-1. echo
echo = prints text to standard output
echo <옵션> <메세지>
- 옵션 ex)
-n
: 메세지 출력 후, newline 문자 추가 X-e
: backslash escape 문자를 해석하여 특별한 의미 지정\t
: tab 키\n
: 줄바꿈\a
: alert
example
$ echo "Your time is up"
# 출력됨
$ echo "Your time is up" > time.txt
# 저장됨
$ echo -n "Name : "
# 출력됨 & 줄바꿈 X
$ echo -e "First\tSecond"
# \t를 "\t"가 아니라, "tab키"로 인식함
$ score=100
$ echo score
# score
$ echo $score
# 100
7-2. read
read= read text from standard input
read <옵션> 변수명
- 옵션 ex)
-n
: 지정한 문자 수 만큼 입력 받음-t
: 지정된 시간 안에 입력 받음-s
: silent mode로 입력하는 글자 안보임- read 명령에서 변수 명 생략 시, 기본 REPLY 변수에 채워짐
example
$ read name
# 이제 입력하자 : seunghan
$ echo $name
seunghan
$ read name score
# 이제 입력하자 : seunghan 100
$ score
100
$ read name score
# 이제 입력하자 : seunghan 100 kim
$ score
100 kim
example 2)
$ read -t10 -n8 -s password
# -t10 : 10초안에 입력해야
# -n8 : 최대 8자리
# -s : secret 모드로 (입력하는거 안보임)
example 3)
$ echo -n "Name :" ; read name
# 한 줄에 여려 명령 with ;
your name : (입력하자)
7-3. printf
f = ‘format’ (서식)
printf format <메세지>
- format 예시
%d
,%i
: 숫자%s
: 문자열%f
실수형 숫자
example
$ printf "Hello linux shell \n"
Hello linux shell # \n 없으면 줄바꿈 X
$ printf "Name : %s\t Score : %i\n" seunghan 100
# %s에 seunghan이 들어가고
# %i에 100이 들어감
# \t(tab) & \n(줄바꿈)도 이루어짐
$ today=`date + %Y%m%d`
$ echo $today
# nested command
# 20220202
$ printf "date is %s\n" $today
Today is 20220202
$ printf "|%10s|%10s|%10.2f\n" ubuntu seunghan 77
| ubuntu| seunghan| 77.00
$ printf "|%-10s|%-10s|%10.2f\n" ubuntu seunghan 77
|ubuntu |seunghan | 77.00