셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 한다. 셸 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.
셸 스크립트라는 말은 유닉스 셸을 위해 쓰인 스크립트를 말하는 반면, COMMAND.COM(도스)과 cmd.exe (윈도) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 이 글에는 두 개의 속성 모두를 논한다.
.sh라는 파일 확장자를 가진 파일이 특정 종류의 셸 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다.
위키백과에서 따온 설명인데 뭔소린지 모르겠음.
걍 셸을 통해 실행 가능한 스크립트(대본) 파일을 만든다 라고 생각하면 쉬움.
스크립트는 내가 원하는 기능을 대본 마냥 쭈욱 쓴 것 이라고 생각하셈.
더 어렵나..?
무튼
여태껏 파일을 만들어서 읽고(r) 쓰는(w) 것만 해왔음
실행(x)을 해볼 차례
0. 우선 내 셸이 무엇인지 확인해보자
echo $0
/bin/bash이 나옴. 다른 셸을 설치했다면 설치한 셸이 나올거임.
1. 실행해볼 파일을 만듦
touch asdf
2. 일단 실행해봄
./asdf (여기서 ./는 현재 디렉토리를 의미함)
쏼라쏼라 허가 거부의 오류가 뜸.
3. 실행가능한 파일로 바꿔줌
chmod +x asdf
4. 권한이 추가 되었는지 확인하고 실행해봄
ls -la asdf; ./asdf
x가 추가되었음. -rwxrwxr-x 그리고 2번의 허가 거부오류도 안남. 굿
5. 이제 vi 편집기로 asdf파일에 내가 원하는 기능을 가진 스크립트를 작성해주면 됨.
vi asdf
6. 일단 어떤 셸로 실행되는건지 알려줘야 하니까
#! /bin/bash
7. 이제 본격적인 스크립트 작성. 지금부터 쓰는 내용이 이 파일의 기능을 나타낸다.
내가 asdf 파일을 실행했을 때 하고 싶은 기능은 현재 디렉토리의 모든 txt파일을 backup 디렉토리에 백업하는 것이다.
>> backup이라는 디렉토리를 만들고 backup디렉토리 안에 현재 디렉토리에 있는 모든 txt파일을 복사할 것이고,
>> backup이라는 디렉토리가 이미 있다면 디렉토리를 만들지 않고 그 안에 모든 txt파일을 복사할 것이다.
라는 내용을 쓰면 된다.
if ! [ -d backup ] ; then
mkdir backup
fi
cp *.txt backup
*설명
if (만약에) ! (반대) [ (조건) ] ; then (~라면)
실행문 1
fi (if문 끝)
실행문 2
주의점
첫줄 띄어쓰기, 실행문1 앞은 tap
*.txt의 * 는 와일드 카드로 "모든"을 의미
만약에 조건이 아니라면 실행문 1을 실행 후 실행문 2를 실행하고
먄약에 조건이 맞다면 실행문 2만 실행
다시말해,
backup이라는 디렉토리가 없다면(있다면)
backup 디렉토리를 만들고(무시)
backup 디렉토리에 모든 txt파일을 복사한다.
8. 저장 후 나가기
:wq
9. asdf 를 실행해서 해당 기능이 잘 되는지 확인해보기
./asdf
10. 확인 작업
ls -la
drwxrwxr-x 2 root root 4096 6월 19 07:57 backup
ls -la backup
'LINUX > 기초' 카테고리의 다른 글
파일이동 ssh (0) | 2021.04.30 |
---|---|
권한에 대해 깔짝 - 추후 추가 (0) | 2020.06.18 |
Linux Directory (0) | 2020.06.18 |
Linux의 Kernel과 Shell이 무엇인지 아라보자 (0) | 2020.06.18 |
Output Redirection (0) | 2020.06.15 |