Linux 에서 셸 스 크 립 트 를 실행 하 는 5 가지 방법 요약

2764 단어 SHELL
Linux 에서 셸 스 크 립 트 를 실행 하 는 4 가지 방법 요약, 즉 Linux 에서 셸 스 크 립 트 를 실행 하 는 4 가지 방법:
방법 1: 셸 스 크 립 트 가 있 는 디 렉 터 리 로 전환 (이때 작업 디 렉 터 리 라 고 함) 셸 스 크 립 트 를 실행 합 니 다.
 코드 는 다음 과 같 습 니 다:
cd /data/shell

./hello.sh

현재 작업 디 렉 터 리 에서 hello. sh 를 실행 한 다 는 뜻 입 니 다..../를 추가 하지 않 으 면 bash 는 hello. sh 의 오류 정 보 를 찾 지 못 할 수도 있 습 니 다.현재 작업 디 렉 터 리 (/data/shell) 는 실행 프로그램의 기본 검색 경로 열 에 있 지 않 을 수 있 습 니 다. 즉, 환경 변수 PASH 의 내용 에 있 지 않 습 니 다.PATH 의 내용 을 보기 위해 echo $PASH 명령 을 사용 할 수 있 습 니 다.현재/data/shell 은 환경 변수 PASH 에 없 기 때문에./를 더 해 야 실행 할 수 있 습 니 다.
 
방법 2: bash 셸 스 크 립 트 를 절대 경로 로 실행 합 니 다.
 코드 는 다음 과 같 습 니 다:
/data/shell/hello.sh

 
방법 3: bash 나 sh 를 직접 사용 하여 bash 셸 스 크 립 트 를 실행 합 니 다.
 코드 는 다음 과 같 습 니 다:
cd /data/shell

bash hello.sh

혹시
 코드 는 다음 과 같 습 니 다:
cd /data/shell

sh hello.sh

방법 3 으로 실행 된다 면 셸 의 실행 권한 을 미리 설정 하지 않 아 도 되 고 셸 파일 의 첫 줄 (bash 경 로 를 지정 합 니 다) 을 쓰 지 않 아 도 됩 니 다.방법 셋 째 는 hello. sh 를 매개 변수 로 sh (bash) 명령 에 전달 하 는 것 이기 때문이다.이 때 는 hello. sh 가 직접 실행 하 는 것 이 아니 라 다른 사람 에 게 호출 되 어 실행 되 기 때문에 권한 을 집행 하지 마 세 요.그럼 bash 경 로 를 지정 하지 않 아 도 자 연 스 럽 게 이해 할 수 있 겠 네요. 하하............................................
 
방법 4: 현재 셸 환경 에서 bash 셸 스 크 립 트 를 실행 합 니 다:
 코드 는 다음 과 같 습 니 다:
cd /data/shell

. hello.sh

혹시
 코드 는 다음 과 같 습 니 다:
cd /data/shell

source hello.sh

세 가지 방법 으로 셸 스 크 립 트 를 실행 할 때 현재 셸 (부모 셸 이 라 고 함) 에서 키 셸 환경 을 엽 니 다. 이 셸 스 크 립 트 는 이 하위 셸 환경 에서 실 행 됩 니 다.셸 스 크 립 트 가 실 행 된 후 하위 셸 환경 이 닫 히 고 다시 부모 셸 로 돌아 갑 니 다.방법 넷 째 는 현재 셸 에서 실 행 됩 니 다.
방법 5: 셸 에서 다른 셸 을 시작 합 니 다.
셸 스 크 립 트 를 실행 할 때 외부 스 크 립 트, exec (exec script. sh), source (source script. sh), fork (./script. sh) 를 호출 하 는 세 가지 방법 이 있 습 니 다.  1、exec(exec/home/script.sh):  exec 를 사용 하여 스 크 립 트 를 호출 합 니 다. 실 행 된 스 크 립 트 는 현재 셸 의 환경 변 수 를 계승 합 니 다.그러나 사실상 exec 에 새로운 프로 세 스 가 생 겼 습 니 다. 그 는 주 셸 의 프로 세 스 자원 을 점용 하고 스 크 립 트 내용 을 교체 합 니 다. 원래 셸 의 PID 번 호 를 계승 합 니 다. 즉, 원래 셸 의 나머지 내용 은 실행 되 지 않 습 니 다.
2、source(source/home/script.sh)
source 나 "."를 사용 하여 외부 스 크 립 트 를 호출 합 니 다. 새로운 프로 세 스 가 발생 하지 않 습 니 다. 현재 셸 환경 변 수 를 계승 하고 호출 된 스 크 립 트 가 실 행 된 후에 환경 변수 와 성명 변 수 는 현재 셸 에 의 해 보 존 됩 니 다. 스 크 립 트 의 내용 을 복사 하여 직접 실행 하 는 것 과 같 습 니 다.실행 이 끝 난 후 원래 의 셸 이 계속 실 행 됩 니 다.
3、fork(/home/script.sh)
스 크 립 트 를 직접 실행 하면 현재 셸 을 부모 프로 세 스 로 하여 새로운 프로 세 스 를 만 들 고 주 스 크 립 트 의 환경 변수 와 성명 변 수 를 계승 합 니 다.실행 이 끝 난 후 메 인 스 크 립 트 는 환경 변수 와 성명 변 수 를 유지 하지 않 습 니 다.
결론: 이렇게 보면 포크 가 가장 유연 하고 source 가 그 다음 이 고 exec 가 가장 기괴 하 다.
 
어떤 사용자 가 사용 하 는 셸 로그 인 을 볼 지:
1.echo $SHELL          #현재 로그 인 한 사용자 가 사용 하 는 셸 2. grep username/etc/passwd 를 마지막 으로 봅 니 다.    #알 고 싶 은 사용자 로그 인 에 사용 할 셸 보기

좋은 웹페이지 즐겨찾기