일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- BindingResult
- application layer
- @SubscribeMapping
- 프로그래머스
- JDBC
- 티스토리챌린지
- API
- 컴파일 타임 상수
- mysql
- 기본키 전략
- 백준
- 리눅스
- 메모리 구조
- @Autowired
- 쉘 스크립트
- JPA
- 편향된 지수
- 알고리즘
- DTO
- allocationSize
- 파이썬
- 런타임 상수
- intelij spring config
- 쿠키
- 오블완
- 커밋 되돌리기
- Git
- spring
- compgen
- m:n
- Today
- Total
둘셋 개발!
[Linux] 쉘 스크립트 작성하는 방법 본문
본 내용은 'KT 리눅스 쉘 스크립트 프로그래밍 교육'에 기반한 내용입니다.
✏️ 쉘 스크립트의 기본 구조
1. 첫 줄에 쉬뱅(#!) 추가
bash shell일 경우 첫 줄에 '#!/bin/bash'를 추가하여 운영체제에게 어떤 인터셉터를 사용할 지 알려준다.
2. 주석
'#'으로 주석을 달 수 있다.
3. 환경 설정
환경변수를 설정하거나 스크립트 실행을 위한 기본 경로를 설정한다.
4. 함수 정의
스크립트 내에서 사용할 함수를 정의할 수 있다.
5. 메인 로직
실제 스크립트의 로직이 들어간다.
6. 종료 처리
스크립트 실행이 완료되면 필요한 종료 작업을 수행한다.
다음은 이 6가지의 기본구조를 모두 사용한 스크립트이다.
#!/bin/bash
# 첫 줄
# 주석입니다
# 환경설정
PATH="/usr/local"
# 함수 정의
function say_hello {
echo "Hello, $1!" # 인사와 함께 첫번째 인자를 출력
}
# 주 실행부
user="World"
say_hello $user
# 종료 처리
echo "스크립트 실행 완료"
실행하면

이렇게 나온다.
✏️ 쉘 스크립트 실행하기
1. bash, sh로 실행하기

2. 스크립트 파일 실행 권한 설정 후 ./[파일명]으로 실행하기

그리고 어느 디렉토리 위치에 있든 파일이름으로만 실행하고 싶다면 Path경로에 실행하고자 하는 디렉토리 경로를 넣으면 된다.
PATH=$PATH:/lab/scripts/uni
$PATH의 의미는 기존의 PATH이므로 꼭!!!! 넣어줘야 한다.
아니면 기존 path 경로가 다 날라간다.

(/lab/scripts 경로에 basic_structure.sh를 생성했는데, 이미 path에 해당 경로가 저장되어 있어서 삭제하고, scripts디렉토리 안에 uni디렉토리를 생성하고 그 안에 basic_structure.sh를 넣었다)
basic_structure.sh는 /lab/scripts/uni 디렉토리안에 있으므로, 해당 파일이 저장되어 있는 디렉토리 안에서는 파일 경로를 적어주지 않고 파일명만 적어줘도 실행이 되지만
다른 디렉토리 내에서는 'No such file or directory' 라고 나온다.
하지만 path를 경로에 '/lab/scripts/uni'를 추가한 뒤로부터는 어느 디렉토리 내에서도 파일명으로만 실행이 가능한 걸 확인할 수 있다.
✏️ 쉘 스크립트 찾기
1. 제목으로 찾기
find /lab/scripts/uni/ -name "*.sh"
find를 사용하면 name 옵션을 사용해서 검색한다.
위의 명령은 .sh로 끝나는 파일을 찾아달라는 의미이다.
2. 파일 속성으로 찾기
find /lab/ | xargs file
위의 명령은 /lab/ 밑에 위치하는 것들 중 ’파일‘인 것들을 찾아달라는 의미이다.