linux 셸 에서"."와"./"가 실 행 된 차이 점 에 대한 상세 한 설명

2042 단어 shell../
현재 눈 에 띄 는 차 이 는 주로 환경 변수의 역할 영역 에 있다.
1."./"를 사용 하여 실행 하면 프로그램 이 새로운 셸 에서 실행 되 고 현재 셸 의 환경 변 수 를 계승 하지 않 는 것 으로 이해 할 수 있 습 니 다.또한 프로그램 에서 현재 셸 의 환경 변 수 를 변경 하면 현재 셸 의 환경 변 수 는 변 하지 않 습 니 다.
2."실행"을 사용 하면 프로그램 은 현재 셸 의 환경 변 수 를 계승 합 니 다.또한 프로그램 에서 현재 셸 의 환경 변 수 를 변경 하면 현재 셸 에서 이 환경 변수의 값 도 변 경 됩 니 다.
또 다른 차이 점 은"./"실행 권한 이 있 는 파일 에 만 사용 할 수 있 고"일시 적 으로 향상 시 킬 수 있다 는 것 이다. 
example:
1.다음 스 크 립 트 파일 이 있 습 니 다.  test.sh

# pre value
echo 'pre is :' $VAL_TS
 
# change the value
VAL_TS='world'
 
# post value
echo 'post is :' $VAL_TS
2.현재 셸 에서 다음 명령 을 수행 합 니 다:

user@pc:~$ VAL_TS='hello'      #     VAL_TS    : hello
user@pc:~$ echo $VAL_TS       #     VAL_TS    
#  
hello
 
user@pc:~$ ./test.sh         #   './ '      test.sh
#  
pre is :              #          shell   VAL_TS  
post is : world           #       ,    ‘world'
 
user@pc:~$ echo $VAL_TS       # shell      VAL_TS   
#  
hello                #    test.h        VAL_TS   ,       shell 
 
user@pc:~$ . test.sh         #   ' . '      test.sh
#  
pre is : hello           #         shell   VAL_TS  
post is : world           #       ,    ‘world'
 
user@pc:~$ echo $VAL_TS       # shell    VAL_TS   
#  
world                #            shell 
요약:
개인 적 인 이해:
1."./"방식 은 셸 을 새로 만 드 는 것 과 유사 합 니 다.이 새 셸 에서 스 크 립 트 의 프로그램 을 실행 합 니 다.키 프로 세 스 를 새로 만 드 는 것 과 유사 하지만 이 하위 프로 세 스 는 부모 프로 세 스 의 모든 비 export 형식의 변 수 를 계승 하지 않 습 니 다.또한 스 크 립 트 에서 비 export 환경 변 화 량 의 생 성 이나 수정 은 외부 호출 셸 에 피드백 되 지 않 습 니 다.
2."."방식 은 스 크 립 트 의 모든 줄 명령 을 현재 셸 에서 하나씩 실행 하 는 것 과 유사 하기 때문에 현재 셸 의 환경 변 수 를 계승 하 는 동시에 스 크 립 트 에서 환경 변수 에 대한 수정 도 셸 에 피드백 할 수 있 습 니 다.
 Liux 셸 의".......................................................................................

좋은 웹페이지 즐겨찾기