Bash shell Script 란?
: 하나의 파일에 기존에 존재하는 명령어들을 집어넣어 순차적으로 해석(Interprete)해서 실행하는 것.
- 리눅스 Command 들을 모아 놓은 ASCII Text 파일.
- 파일에 실행 퍼미션을 할당해야 실행 가능.
- Bash Shell Script 에서 특별히 의미가 정해진 기능
# #comment
#!/bin/bash #셔뱅.해시뱅.스크립트를 실행할 sub shell 이름
- Shell 구문을 기본 top-down 방식으로 해석해서 실행됨.
※ Sub shell
$ ls /bin/bash
$ pwd
$ /bin/bash # Sub Shell
$ cd /
$ pwd
$ exit
$ pwd
(1) Shell Script 예시
(2) Shell Script 예시(2) : 명령어처럼 사용할 수 있는 셀 스크립트를 생성하여 보자.
- 홈디렉토리에 명령어를 저장할 디렉토리를 생성.
mkdir ~/bin
- 명령어 경로에 추가. (환경 변수 PATH 뒤에 추가)
[centos@linux-mypc bin]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/centos/.local/bin:/home/centos/bin
[centos@linux-mypc bin]$ PATH=$PATH:/home/centos/bin
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/centos/.local/bin:/home/centos/bin:/home/centos/bin
- 특정 디렉토리(/var)의 사용량을 나타내는 셀 스크립트 파일을 생성
$ sudo vi varUsage.sh
#!/bin/bash
echo "============="
date +%Y-%m-%d
echo "============="
du -sh /var 2> /dev/null # /var의 사용량 출력, 에러 메시지는 /dev/null 로
- 실행 권한 수정
$ chmod +x varUsage.sh
- 실행
$ varUsage.sh
(3) Shell Script 예시(3) : 현재 디렉토리의 모든 파일의 목록을 /tmp/날짜.txt 파일에 저장하는 shell script 작성.
- 즉, 아래 내용을 자동으로 생성하여 주는 shell script를 작성해보자.
[centos@linux-mypc bin]$ ls > /tmp/$(date +%Y%m%d).txt
[centos@linux-mypc bin]$ cat /tmp/
20220302.txt .Test-unix/
[centos@linux-mypc bin]$ sudo vi out.sh
## out.sh
#!/bin/bash
path=`pwd`
ls $path > /tmp/$(date +%Y-%m-%d).txt
[centos@linux-mypc bin]$ sudo chmod +x out.sh
[centos@linux-mypc bin]$ out.sh
[centos@linux-mypc bin]$ ls /tmp
2022-03-02.txt
[centos@linux-mypc bin]$ cat /tmp/2022-03-02.txt
out.sh
sample2.sh
sample.sh
varUsage.sh
[centos@linux-mypc bin]$ cd ..
[centos@linux-mypc ~]$ ls
bin blk.sh casf date.out deploy error.txt file1 message.txt test.sh
[centos@linux-mypc ~]$ cat /tmp/2022-03-02.txt
bin
blk.sh
casf
date.out
deploy
error.txt
file1
message.txt
test.sh
Reference
- https://www.youtube.com/watch?v=onbFKxEEgHg&list=PLApuRlvrZKog2XlvGJQh9KY8ePCvUG7Je&index=7
'OS > Linux Server' 카테고리의 다른 글
[Shell Programming] 7. Input & Output (0) | 2022.03.07 |
---|---|
[Shell Programming] 6. Positional Parameters (0) | 2022.03.07 |
[Shell Programming] 4. Bash shell의 Rules(2) (0) | 2022.02.21 |
[Linux] Disk 추가 (0) | 2022.02.17 |
[Linux] CentOS 7 부팅 시 자동 시작 명령어 혹은 스크립트 적용 (0) | 2022.02.16 |