우선 프로그램을 살펴보겠습니다. test.sh
#!/bin/sh #this is a test. cd /tmp echo "hello,this is a test"
프로그램 실행 방법: # 🎜🎜#
1. 파일을 실행 가능하게 만들고 파일을 직접 실행합니다. chmod 명령은 파일의 권한을 수정하는 데 사용됩니다. +x는 파일을 실행 가능하게 만듭니다. 위에서 프로그램을 실행한 것과 같습니다. (추천 튜토리얼:linux tutorial)
2. 명령 인터프리터를 직접 호출하여 프로그램을 실행합니다. 우리의 인터프리터는 /bin/sh이므로 sh 명령 인터프리터를 사용하여 프로그램을 실행합니다. 3. 소스를 사용하여 파일을 실행합니다. 프로그램 실행 차이점 설명: 쉘 프로그램을 실행하는 데 사용하는 세 가지 방법 중 첫 번째 실행은 두 가지 방법 프로세스는 다음과 같습니다. (1) 상위 프로세스는 명령을 수신한 후 내장 명령이 아님을 확인하고 자신과 같은 쉘 프로세스를 생성하여 실행합니다. 이 외부 명령#🎜🎜 #(2) 이 셸 하위 프로세스는 자신을 /bin/sh로 대체하고 sh 프로세스는 $PWD 변수를 포함하여 자체 실행 환경 변수를 설정합니다.
(3) sh 프로세스는 내장 명령인 cd와 echo를 차례로 실행합니다. 이 과정에서 sh 프로세스(자식 프로세스)의 환경 변수는 cd 명령에 의해 변경됩니다.
(4) 자식 프로세스가 실행된 후, 기다리고 있던 부모 프로세스가 깨어나서 계속해서 명령을 받습니다.
그래서 우리는 처음 두 메서드의 실행 결과가 우리의 기대와 다른 이유를 이해합니다. 부모 프로세스의 현재 디렉터리(환경 변수)는 자식 프로세스에 의해 변경될 수 없습니다.
그러나 소스를 사용하여 쉘 스크립트를 실행하면 하위 프로세스가 생성되지 않고 상위 프로세스에서 직접 실행됩니다.
추천 관련 비디오 튜토리얼:
linux 비디오 튜토리얼위 내용은 리눅스에서 쉘 프로그램을 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!