1. Shell Script
- 자동화 프로그램 만들 때 사용
- 확장자 : .sh
- 실행법
1 2
$ source [File Name].sh $ ./go.sh # 실행권한 줘야함, 간헐적으로 사용
CLI Shell 여러 가지 존재- bash, dash 등등 …
bash : 기능 많음, 주로 리눅스
dash : 경량, 임베디드에 많이 씀
shell 확인법 : $cat /etc/shells
2. 작성 문법
1. Shebang(쉬뱅, #!)
- 파일 맨위에 작성
- 어느 Shell 인지 나타냄
1 2
#!/bin/bash (bash shell) #!/bin/sh (dash shell)
2. 출력 & 입력
- 출략 : echoㅤㅤㅤ입력 : read
3. 변수
- 모든 값을 문자열로 취급
1
2
3
4
5
6
7
8
9
#!/bin bash
# 선언
변수명=값
NAME=ZIVALLO
# 변수 사용
$변수명
echo "My name is "$NAME

4. Argument
- 받은 Argument를 $1, $2, $3 … 로 사용가능
1
2
3
4
5
6
#!/bin bash
# Argument 사용
echo $1
echo $2
echo $3

5. 산술 연산
- $(( )) 사용
1
2
3
#!/bin bash
echo $(($1+$2))

6. 한줄 주석
1
# 한줄 주석
7. 실행결과 변수 저장
- 변수명=$(Shell 명령어)
1
2
3
#!/bin bash
echo $(date)

8. if문1
- 띄어쓰기 중요
- 비교식
| 비교식 | 의미 | 비교식 | 의미 |
|---|---|---|---|
| -lt | <(less than) | -gt | >(greater than) |
| -le | <= | -ge | >= |
| -eq | = | -ne | != |
| || | or | && | and |
- 파일 관련 조건식
| 조건식 | 의미 | 조건식 | 의미 |
|---|---|---|---|
| -n “문자열” | 문자열길이 > 0 일때 | -z “문자열” | 문자열길이 == 0 일때 |
| -x “파일” | 파일 존재, 권한 실행(+x) 일때 | -f “파일” | 파일 존재, Ruguler 파일 일때 |
1
2
3
4
5
6
7
8
9
10
11
#!/bin bash
a=$1
if [ $a = "100" ];then
echo first
elif [ $a -eq "200" ];then
echo second
else
echo third
fi

for, printf, 함수, 배열 사용 가능하지만 자주 사용하지 않음.
3. Environmet Variable(환경 변수)
- Shell 에 저장되는 변수 (사용자, Process, 리눅스 등 다같이 사용)
- 터미널 종료시 없어짐 -> ~/.bashrc2 에 추가
1
2
3
4
5
6
7
8
9
10
11
12
# 환경 변수 전체 읽기
$ printenv
# 하나만 읽기
$ echo $변수명
$ printenv | grep [변수명]
# 변수 저장
export [변수명]=[값]
# 변수 제거
unset [변수명]
4. alias
- 별명을 만들어내는 명령어
1 2
alias f1='mkdir ./ziv;ls' alias f2='rm -r ./ziv;ls'
![]()
5. Crontab
- 주기적으로 Shell Script 파일 수행시켜야 할때 사용
- Shell Script 파일 작성
- sh 파일에 +x 실행권한 주기
1
$ sudo chmod +x ~/test.sh
- /etc/crontab 파일에 추가
1
$ sudo vi /etc/crontab
![]()
표현식 의미 * * * * * 매 분마다 수행 */5 * * * * 매 5분마다 수행 * */5 * * * 매 5시간마다 수행 * 8 * * * 매일 8시마다 수행
bash shell이 시작될때 자동 시작되는 bash script 파일 ↩

