작은 새 가 셸 프로 그래 밍 (3) 스 크 립 트 의 다른 실행 방식 에 미 친 영향
2801 단어 linuxshellshell-script
Shell 스 크 립 트 를 실행 하 는 방식 은 보통 다음 과 같은 네 가지 가 있 습 니 다.
bash ./test.sh
./test.sh
source ./test.sh
. ./test.sh
방식 1
bash
방식 으로 스 크 립 트 를 실행 하면 현재 터미널 아래 에 bash 서브 프로 세 스 가 생 겨 스 크 립 트 를 실행 하기 때문에 현재 환경 에 영향 을 주지 않 습 니 다.[root@lincoding usr]# bash ./test.sh
방식 2
./test.sh
방식 으로 실행 되면 스 크 립 트 의 첫 번 째 줄 은 어느 Shell 해석 기 가 어떤 Shell 해석 기의 하위 프로 세 스 를 만들어 스 크 립 트 를 실행 하 는 지 설명 합 니 다. 만약 에 설명 한 Shell 해석 기 가 bash 라면 방식 과 유사 합 니 다.[root@lincoding usr]# ./test.sh
방식 3 과 방식 4 가 실 행 될 때 위의 방식 1 과 방식 이 약간 다르다.그 가 실행 할 때 현재 터미널 을 통 해 셸 스 크 립 트 를 실행 하기 때문에 하위 프로 세 스 가 발생 하지 않 기 때문에 현재 환경 에 영향 을 줄 수 있 습 니 다.
[root@lincoding usr]# source ./test.sh
[root@lincoding usr]# . ./test.sh
실행 방식 의 영향 비교
상술 한 것 도 방식 1 과 방식 2 를 언급 했다. 셀 스 크 립 트 를 실행 하기 때문에 현재 환경 에 영향 을 주지 않 는 다.한편, 방식 2 와 방식 3 은 현재 터미널 에서 Shell 스 크 립 트 를 실행 하기 때문에 현재 환경 에 영향 을 줄 수 있 습 니 다.
밤 을 들 어 디 렉 터 리 를 바 꾸 는 test. sh 스 크 립 트 를 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
#!/bin/bash
# 切换到tmp目录
cd /tmp
# 打印当前目
pwd
테스트. sh 스 크 립 트 를 실행 하 는 방법 은 다음 과 같 습 니 다.
[root@lincoding /]# bash test.sh
/tmp
[root@lincoding /]# pwd
/
스 크 립 트 를 실행 하 는 방식 을 사용 하면 실행 권한 을 부여 할 필요 가 없습니다.
방식 2. test. sh 스 크 립 트 를 실행 합 니 다. 그 결 과 는 다음 과 같 습 니 다.
[root@lincoding /]# chmod u+x test.sh
[root@lincoding /]# ls -l test.sh
-rwxr--r--. 1 root root 64 Sep 26 18:34 test.sh
[root@lincoding /]# ./test.sh
/tmp
[root@lincoding /]# pwd
/
방식 1 과 방식 2 가
/tmp
디 렉 터 리 로 전환 하 는 Shell 스 크 립 트 를 실행 한 후에 터미널 이 있 는 디 렉 터 리 에 변화 가 없 는 지, 아니면 /
루트 디 렉 터 리 에 있 는 지, 방식 1 과 방식 2 의 실행 방식 이 현재 환경 에 영향 을 주지 않 는 지 설명 합 니 다.이 유 는 Shell 스 크 립 트 를 1, 2 로 실행 할 때 하위 프로 세 스 가 Shell 스 크 립 트 를 실행 하기 때 문 입 니 다. 스 크 립 트 실행 이 끝 난 후에 하위 프로 세 스 가 종료 되 고 부모 프로 세 스 로 돌아 가면 현재 있 는 환경 에 영향 을 주지 않 습 니 다.
다음은 방식 3 집행 결과:
[root@omp120 /]# source ./test.sh
/tmp
[root@omp120 tmp]# pwd
/tmp
방식 4 실행 결과:
[root@omp120 /]# . ./test.sh
/tmp
[root@omp120 tmp]# pwd
/tmp
위의 방식 3 과 방식 4 의 실행 결 과 를 통 해 알 수 있 듯 이
/tmp
디 렉 터 리 로 전환 하 는 Shell 스 크 립 트 를 실행 한 후에 현재 터미널 환경 이 있 는 디 렉 터 리 는 /tmp
디 렉 터 리 로 전환 되 었 습 니 다. 설명 방식 3 과 방식 4 의 실행 방식 은 이전 환경 에 영향 을 미 쳤 습 니 다.작은 매듭
방식 1 과 방식 2 가 Shell 스 크 립 트 를 실행 할 때 하위 프로 세 스 가 Shell 스 크 립 트 를 실행 합 니 다. 스 크 립 트 가 끝 난 후에 하위 프로 세 스 가 종료 되 고 부모 프로 세 스 로 돌아 가면 현재 있 는 환경 에 영향 을 주지 않 습 니 다.
한편, 방식 2 와 방식 4 는 현재 환경 에서 Shell 스 크 립 트 를 실행 하 는 것 이다. 즉, 현재 프로 세 스에 서 Shell 스 크 립 트 를 실행 하면 그 실행 결 과 는 현재 환경 에 영향 을 줄 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.