Shell 스 크 립 트 를 실행 하 는 4 가지 방법 및 차이 점 소개

셸 스 크 립 트 를 실행 하 는 방법 은 다음 과 같 습 니 다.
1.상대 경로 방식,먼저 cd 에서 스 크 립 트 경로 로 내 려 가 야 합 니 다.

[root@banking tmp]# cd /tmp 
[root@banking tmp]# ./ceshi.sh
스 크 립 트 실행 성공 
2.절대 경로 방식

[root@banking tmp]# /tmp/ceshi.sh  
스 크 립 트 실행 성공 
3.bash 명령 호출

[root@banking /]# bash /tmp/ceshi.sh
스 크 립 트 실행 성공 
4.(스페이스 바)  상대 또는 절대 방식

[root@banking /]# . /tmp/ceshi.sh  
몇 가지 방식 의 차 이 를 말 하 다.
첫 번 째 와 두 번 째 는 별 차이 가 없 으 며,두 가지 방식 모두 스 크 립 트 에 미리 권한 을 부여 해 야 한다.
세 번 째 는 스 크 립 트 를 bash 호출 로 처리 하기 때문에 스 크 립 트 는 실행 권한 이 없 이 실행 할 수 있 습 니 다.
앞의 세 가지 방식 은 현재 셸 에서 키 셸 을 열 어 스 크 립 트 내용 을 실행 하 는 것 입 니 다.스 크 립 트 내용 이 끝나 면 하위 셸 이 닫 히 고 부모 셸 로 돌아 갑 니 다.
네 번 째 는 스 크 립 트 내용 을 현재 셸 에서 실행 하 는 것 이지,단독 셸 에서 실행 하 는 것 이 아 닙 니 다.
하위 셸 을 여 는 것 과 하위 셸 을 열지 않 는 것 의 차 이 는 바로 환경 변수의 계승 관계 에 있 습 니 다.예 를 들 어 하위 셸 에 설 치 된 현재 변 수 를 특수 채널 로 처리 하지 않 으 면 부모 셸 은 보이 지 않 습 니 다.
현재 셸 에서 실행 되면 모든 설정 의 환경 변 수 는 직접 유효 합 니 다.
인증:

[root@banking /]# cat /tmp/ceshi.sh  
top 
1.앞의 세 가지 실행 방식 에서 pstree 표시

├─sshd─┬─sshd───bash───bash───top 
│      └─sshd───bash───pstree 
2.네 번 째 실행 방식 의 pstree 표시

├─sshd─┬─sshd───bash───top 
│      └─sshd───bash───pstree 
3.환경 변수 설정 의 계승 관계 와 보 이 는 관 계 를 검증 합 니 다.
두 개의 스 크 립 트 를 만 듭 니 다.father.sh 와 subshell.sh.그 중 father.sh 는 subshell.sh 를 호출 합 니 다.

[root@banking /]# cat /tmp/father.sh
v_ceshi='father'
#------- shell
echo " shell "
/tmp/subshell.sh
echo " v_ceshi ${v_ceshi}"
echo ""
echo " shell "
. /tmp/subshell.sh
echo " v_ceshi ${v_ceshi}"
[root@banking /]#
[root@banking /]# cat /tmp/subshell.sh
v_ceshi=son
[root@banking /]#
실행 결과

[root@banking /]# /tmp/father.sh
shell
v_ceshi father

shell
v_ceshi son

좋은 웹페이지 즐겨찾기