728x90
반응형
소스를 pull하고 서버를 재시작하는 명령어를 매번 하나씩 날리고 있었는데 쉘파일을 만들어서
쉘파일 하나만 시작하면 될 수 있게끔 변경해보려고 한다
쉘 파일 만들어보기
쉘파일을 만들고 싶은 경로로 이동하여 vi test_shell.sh
2. 내부 코드 작성해보기
#!/bin/bash
# 1. 최신 이미지 받기
docker pull test
# 2. 기존 컨테이너 종료 및 제거
docker compose down test
# 3. 서버 컨테이너만 실행
docker compose up -d test
#!/bin/bash의 의미는?
이건 **"쉘 스크립트를 어떤 프로그램으로 실행할지 지정하는 줄"**이다.
흔히 **"쉐뱅(Shebang)"**이라고 부른다.
💡 무슨 역할을 하는가?
- 이 줄이 있으면, 스크립트를 실행할 때 자동으로 /bin/bash라는 Bash 쉘 프로그램을 사용해서 실행한다.
- 즉, ./updatet-test.sh 이렇게 실행했을 때, bash가 이 스크립트 내용을 읽고 해석해주는 거다.
왜 꼭 필요할까?
- 시스템은 .sh 파일을 그냥 텍스트 파일로 보기 때문에, "이 파일을 어떤 프로그램으로 실행해야 하지?"를 모른다.
- #!/bin/bash가 없으면, 어떤 쉘에서 실행하느냐에 따라 동작이 달라질 수 있다. (예: sh, zsh, dash 등).
- 특히, bash 전용 문법([[, let, 배열 등)을 사용할 경우 #!/bin/bash로 지정 안 하면 에러 날 수 있다.
728x90
반응형
'Study > 내가 정리하는 개념들' 카테고리의 다른 글
mysql vs postgres 짧은 비교 (0) | 2023.06.01 |
---|---|
I.A(Information Architecture) 란? (0) | 2023.05.26 |
Message Queue란? (0) | 2023.05.23 |
[시사금융용어] 샤딩(Sharding) (0) | 2023.05.09 |
[금융용어] 여신이 뭐예요? (0) | 2022.12.01 |
댓글