본 글은 아래 영상을 통해 공부하고 작성했습니다. 제 글보다 영상 시청이 더 도움 될 것입니다.
Input & Output
1. echo
- 화면에 텍스트를 출력하는 명령어
- -n : 메시지 출력후 newline 문자를 추가하지 않는다.
- -e : backslash escape 문자를 해석하여 특별한 의미를 지정한다.
- \t(TAB키) \n(줄바꿈) \a(alert)
2. read
- Standard input으로 부터 텍스트를 입력받음
- -n : 지정한 문자수만큼 입력 받는다.
- -t : 지정된 시간안에 입력 받는다.
- -s : silent mode로 입력하는 글자가 보이지 않는다.
- read 명령에서 변수 명 생략 시 기본 REPLY 변수에 채워진다.
3. printf
- 서식 format에 맞춰서 출력이 가능한데, C언어의 printf 함수와 동일하다.
- %d or %i 숫자
- %s 문자영
- %f 실수형 숫자
예제 1
# vi bin/input-exam.sh
#!/bin/bash
#:Usage :input-exam.sh
#:Author :"Hyunjoon Song"
echo -n "Input a directory name.:"
read dirname
echo "=================="
date +%Y-%m-%d
echo "=================="
du -sh $dirname 2> /dev/null
echo
chmod u+x bin/input-exam.sh
연습문제
다음의 조건에 맞는 shell script를 작성하세요.
1) 대화식으로 사용자에게 디렉토리 이름을 입력 받으시오.
2) 입력한 디렉토리의 모든 파일 목록을 /tmp/날짜.txt 파일에 지정하는 shell script를 작성 하시오.
결과:
$ joon.sh
Input a directory name: <디렉토리이름>
$ cat /tmp/20210515.txt
aa-enabled
aa-exec
acpi-listen
add-apt-repository
addpart
apport-bug
apport-cli
...
작성한 정답 코드
# vi bin/joon.sh
#!/bin/bash
printf "Input a directory name: "
read dirname
echo "-------------------------------------------"
ls -l $dirname > /tmp/`date +%Y%m%d`.txt
printf "%10s의 디렉토리 목록이 저장됨\n" $dirname
echo "-------------------------------------------"
실행 결과
'Bash Shell Programming' 카테고리의 다른 글
Bash Shell Programming(9) (0) | 2021.07.25 |
---|---|
Bash Shell Programming(8) (0) | 2021.07.25 |
Bash Shell Programming(6) (0) | 2021.07.23 |
Bash Shell Programming(5) (0) | 2021.07.22 |
Bash Shell Programming(4) (0) | 2021.07.21 |