Bash Shell Programming

Bash Shell Programming(5)

Joon0464 2021. 7. 22. 00:52

본 글은 아래 영상을 통해 공부하고 작성했습니다. 제 글보다 영상 시청이 더 도움 될 것입니다.

https://youtu.be/onbFKxEEgHg

- 용어 정리 -

Script

하나의 파일안에 기존에 존재하는 명령어들을 집어넣어 순차적으로 해석하여 실행하도록 하는것

대표적으로 perl script와 shell script가 있다.

Program

소스 코드를 파일에 집어 넣어두어 컴파일러가 컴파일하고 바이너리 명령어(프로그램)를 생성하여 동작시키도록 하는 것

대표적으로 C, C++, Java가 있다.

Shell Script

리눅스 명령어들을 모아놓고 순차적으로 실행되도록 하는 것

Shell Program

Shell Script에 추가적으로 from if while과 같은 프로그램 문법을 집어 넣어서 좀 더 프로그램처럼 만들어 놓은 것

 

Shell Script란?

  • 리눅스 Command들을 모아 놓은 ASCII Text 파일
  • 실행 퍼미션을 할당해야 실행 가능
  • Bash shell script에서 특별히 의미가 정해진 기능이 있다.
  • #은 Comment(주석)을 의미한다.
  • #!/bin/bash는 스크립트를 실행할 sub shell의 이름으로 셔뱅 또는 해시뱅으로 불린다.
  • Shell 구문은 기본 top-down 방식으로 해석해서 실행된다.

Sub Shell이란?

로그인 쉘: 사용자가 로그인하여 실행된 쉘

Sub Shell: 로그인 쉘에서 또 다른 쉘을 실행시켰을 때 동작하는 쉘

즉, Shell Script 작성할 때 Sub Shell을 지정하지 않으면 로그인한 쉘로 Shell Script가 동작하게 되므로 일반적으로 Sub Shell을 지정해서 Shell Script를작성한다.

/bin/bash를 입력하면 Sub Shell로 bash shell이 실행된다.

쉘 스크립트 사용 팁

Shell Script를 작성하여 보관할 디렉토리 bin을 생성하고 그 겅로를 PATH 환경변수에 등록하면 쉘 스크립트를 보다 쉽게 사용할 수 있다.

# vi bin/sample.sh

#!/bin/bash
#: Title                : Sample bash script
#: Date                 : 2021-07-22
#: Author               : "joon"
#: Version              : 1.0
#: Description          : Print Hello World
echo "Today : $(date +%Y-%m-%d)"
echo "Hello, Linux World"

쉘 스크립트 작성시 주석으로 설명을 달아주는 것이 좋다.

chmod u+x bin/sample.sh

실행 권한을 주어야 쉘 스크립트 실행이 가능하다.

경로에 상관 없이 쉘 스크립트 실행이 가능하다.

Shell script 실습

1.

# vi test.sh
echo "==================="
date +%Y-%m-%d
echo "==================="
df -h /

위와 같이 test.sh 이름으로 테스트용 쉘 스크립트 파일을 작성한다.

# chmod u+x test.sh

쉘 스크립트는 반드시 실행권한이 있어야 스크립트 파일로써 실행시킬 수 있다.

# ./test.sh

스크립트를 실행하면 작성했던 명령어가 순차적으로 실행되어 결과가 출력된다.

2.

# vi bin/varUsage.sh

#!/bin/bash
#: Author               : "joon"
#: Description          : Print /var directory usage
echo "[/var Directory]"
echo "==============================="
date +%Y-%m-%d
echo "==============================="
du -sh /var 2> /dev/null
echo
chmod u+x bin/varUsage.sh

실습 문제

다음의 조건에 맞는 shell script를 작성하세요.

1) 현재 디렉토리의 모든 파일 목록을 /tmp/날짜.txt 파일에 저장하는 shell script를 작성하시오.

# vi bin/joon.sh

#!/bin/bash
ls -l > /tmp/$(date +%Y-%m-%d).txt

# chmod u+x bin/joon.sh
# joon.sh

 

'Bash Shell Programming' 카테고리의 다른 글

Bash Shell Programming(7)  (0) 2021.07.23
Bash Shell Programming(6)  (0) 2021.07.23
Bash Shell Programming(4)  (0) 2021.07.21
Bash Shell Programming(3)  (0) 2021.07.21
Bash Shell Programming(2)  (0) 2021.07.19