일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 저동하녹
- 강릉여행
- Zone2
- 마법의연금굴리기
- lner
- 중사랑
- 플라스틱은 어떻게 브랜드의 무기가 되는가
- 여니브레드
- 루스틱
- 일권하는사회
- 잘쉬어야지
- 한국걱정
- 트럼프2.0시대
- schema-registry
- 송고버섯피자
- 이코노미스트한국구독센터
- 오운완
- neovim
- 여행
- 프로젝트헤일메리
- 가람집옹심이
- 마연굴
- deepseek
- 런데이
- kafka-connect
- 티지아이포럼
- apollo-server-v3
- 달리기
- apollo-sandbox
- 런데이애플워치
- Today
- Total
해뜨기전에자자
bash 실행 중 스크립트를 수정 했는데 수정된 스크립트가 동작하는 현상 본문
스크립트 하단의 처리 부분을 변경하고, 다음 실행부터 적용되리라고 생각하고 있었는데
실행 중 이었던 스크립트가 변경된 스크립트의 결과를 출력하는 현상이 나타났다.
단순히 파일을 읽어 메모리에 다 올리고 실행할 것이라고 생각하고 있었기 때문에 깜짝 놀랐다.
bash는 일반적으로 전체 스크립트를 사전에 로딩해두지 않기 때문에, 스크립트를 덮어쓰는 것은 예측할 수 없는 결과가 나올 수 있다고 한다. 인터프리터는 블록 단위로 읽고 실행하는 것을 반복하도록 설계되어있기 때문이다.
strace 로 실제 어떻게 읽었는지를 확인해볼 수 있는데, read 부분에서 전체 파일을 읽었지만 다시 스크립트 일부를 읽고 있는 이력이 있었다.. 정확한 동작은 파악하기가 어려워보인다.
아무튼 스크립트 실행 중 스크립트 파일을 수정하면 예기치 않은 결과를 얻을 수 있으니 지양해야겠다.
unix.stackexchange.com/questions/121013/how-does-linux-deal-with-shell-scripts
How Does Linux deal with shell scripts?
For this question, let's consider a bash shell script, though this question must be applicable to all types of shell script. When someone executes a shell script, does Linux load all the script at...
unix.stackexchange.com
'개발 > linux & tools' 카테고리의 다른 글
맥os 비밀번호 규칙 설정 (1) | 2024.07.18 |
---|---|
vscode neovim 설정 (0) | 2022.10.11 |
iptables 방화벽 (0) | 2020.09.21 |
alpine linux 란 (0) | 2020.05.11 |
k8s docker환경에서의 cpu request, limit (0) | 2019.10.04 |