Shell 스 크 립 트 에서 다른 Shell 스 크 립 트 를 호출 하 는 세 가지 방식

주로 다음 과 같은 몇 가지 방식 이 있다.
Command
Explanation
fork
새 키 Shell 을 열 어 실행 합 니 다.하위 Shell 은 부모 Shell 에서 환경 변 수 를 계승 할 수 있 지만 하위 Shell 의 환경 변 수 는 부모 Shell 에 가 져 오지 않 습 니 다.
exec
같은 Shell 에서 실행 되 지만 부모 스 크 립 트 에서 exec 행 이후 의 내용 은 더 이상 집행 되 지 않 습 니 다.
source
같은 Shell 에서 실 행 됩 니 다.호출 된 스 크 립 트 에서 설명 한 변수 와 환경 변 수 는 주 스 크 립 트 에서 가 져 오고 사용 할 수 있 습 니 다.두 스 크 립 트 를 합 쳐 실행 하 는 것 과 같 습 니 다.
첫 번 째:fork 특징:하위 PID 가 생 성 되 고 중복 호출 이 가능 합 니 다.
  ♦fork 는 가장 일반적인 것 입 니 다.바로 스 크 립 트 에서 path/to/foo.sh 로 호출 하 는 것 입 니 다.
  ♦foo.sh 이 스 크 립 트,예 를 들 어 foo.sh 가 현재 디 렉 터 리 에 있 으 면./foo.sh 입 니 다.실행 할 때 terminal 은 키 Shell 을 새로 열 어 스 크 립 트 foo.sh 를 실행 하고,하위 Shell 을 실행 할 때 부모 Shell 은 그대로 있 습 니 다.하위 셸 을 실행 하고 부모 셸 로 돌아 갑 니 다.하위 셸 은 부모 셸 에서 환경 변 수 를 계승 하지만 하위 셸 의 환경 변 수 는 부모 셸 로 가 져 오지 않 습 니 다.
1.편집 에 들 어가 기:

 [root@localhost ~]# vim liqiang-2.sh
2.내용 호출 쓰기 편집:

echo      
./liqiang.sh
3.출력 결과

[root@localhost ~]# ./liqiang-2.sh
여기 서 호출 합 니 다.
hollo
hollo
두 번 째:exec 특징:exec 호출 후 모든 코드 가 실행 되 지 않 습 니 다.
  ♦exec 는 fork 와 달리 호출 된 스 크 립 트 를 실행 하기 위해 키 Shell 을 새로 열 필요 가 없습니다.호출 된 스 크 립 트 는 부모 스 크 립 트 와 같은 Shell 에서 실 행 됩 니 다.그러나 exec 를 사용 하여 새 스 크 립 트 를 호출 하면 부모 스 크 립 트 의 exec 줄 이후 의 내용 은 더 이상 실행 되 지 않 습 니 다.이것 은 exec 와 source 의 차이 이다.
1.내용 호출 쓰기 편집:

echo       
./liqiang.sh
echo    exec    
exec ./liqiang-3.sh
echo    source
source liqiang-4.sh
echo      
./liqiang.sh
echo    exec    
exce liqiang-3.sh
echo    source
source liqiang-4.sh
echo      
./liqiang.sh
echo    exec    
exce liqiang-3.sh
echo    source
source liqiang-4.sh
2.출력 결과:첫 번 째 exec 를 실행 한 후 아래 의 것 은 더 이상 실행 하지 않 는 것 이 특징 이다.

[root@localhost ~]# ./liqiang-2.sh
     
hollo
hollo
   exec    
        
       
세 번 째:sourcesource 의 특징 은 하위 PID,즉 하위 프로 세 스 를 만 들 지 않 습 니 다.그 는 사용 되 는 스 크 립 트 를 현재 셸 스 크 립 트 에 복사 하여 실행 할 수 있 습 니 다.중복 호출 될 수 있 습 니 다.
  ♦fork 와 의 차 이 는 호출 된 스 크 립 트 를 실행 하기 위해 키 Shell 을 새로 열지 않 고 같은 Shell 에서 실행 하 는 것 입 니 다.따라서 호출 된 스 크 립 트 에서 설명 하 는 변수 와 환경 변 수 는 주 스 크 립 트 에서 가 져 오고 사용 할 수 있 습 니 다.
1.내용 호출 쓰기 편집:

echo      
./liqiang.sh
echo    exec           
#exec ./liqiang-3.sh
echo    source
source liqiang-4.sh
echo      
./liqiang.sh
echo    exec         
#exce liqiang-3.sh
echo    source
source liqiang-4.sh
echo      
./liqiang.sh
echo    exec    
exec liqiang-3.sh
echo    source
source liqiang-4.sh 
♦2.실행 결과:

[root@localhost ~]# ./liqiang-2.sh
     
hollo
hollo
   exec           
   source
        
       
     
hollo
hollo
   exec         
   source
        
       
     
hollo
hollo
   exec    #        
주의:
  ♦source 방식 의 결 과 는 둘 이 같은 프로 세 스에 서 실행 되 는 것 이다.이 방식 은 두 스 크 립 트 를 먼저 합쳐서 실행 하 는 것 과 같다.
  ♦여러 스 크 립 트 에 권한 부여

chmod a+x liqiang-2.sh liqiang-3.sh liqiang-4.sh
Shell 스 크 립 트 에서 다른 Shell 스 크 립 트 를 호출 하 는 세 가지 방식 에 대한 자세 한 설명 은 여기까지 입 니 다.Shell 에서 다른 Shell 스 크 립 트 를 호출 하 는 내용 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기