링크 ux 의 source 명령 (. 명령) 설명 및 응용

2213 단어 linux
사용법:
source filename							# filename必须是可执行的脚本文件
或者
. filename								# 注意“.”号后面还有一个空格

기능:
현재 셸 의 읽 기 경 로 를 filename 으로 알 리 고 파일 의 모든 문 구 를 순서대로 실행 합 니 다.
일반적으로 수정 한 초기 화 파일 을 다시 실행 하여 즉시 효력 을 발생 시 키 고 로그아웃 하고 다시 로그 인 할 필요 가 없습니다.예 를 들 어, 우리 가/etc/profile 파일 을 수정 하고 즉시 효력 을 발생 시 키 려 면 다시 로그 인하 지 않 고 source 명령 을 사용 할 수 있 습 니 다. 예 를 들 어 "source/etc/profile".
source 명령 은 bash 셸 의 내장 명령 입 니 다.점 명령 (즉 "."명령) 은 source 의 다른 이름 입 니 다.이 두 명령 은 하나의 스 크 립 트 를 매개 변수 로 합 니 다. 이 스 크 립 트 는 현재 셸 의 환경 으로 실 행 됩 니 다. 즉, 새로운 하위 프로 세 스 를 시작 하지 않 습 니 다.스 크 립 트 에 설 정 된 모든 변 수 는 현재 Shell 의 일부분 이 됩 니 다.
적용:
상기 설명 을 감안 하여 가장 간단 한 응용 장면 은 교차 컴 파일 을 할 때 현재 셸 에서 source 명령 으로 임시 지정 한 시스템 의 컴 파일 환경 을 내장 컴 파일 환경 으로 한 다음 에 소스 코드 의 컴 파일 과 디 버 깅 을 하 는 것 이다.다른 셸 내 나 이 셸 을 닫 았 을 때 모든 것 이 제자리 로 돌아 갑 니 다.
예 를 들 어 최근 에 I. MX6 의 내장 형 개발 을 하고 있 습 니 다. 커 널 및 장치 트 리 의 컴 파일 디 버 깅 과 관련 되 어 있 습 니 다. fsl 정 부 는 개발 환경의 설치 패키지 에 이러한 셸 스 크 립 트 를 설정 하 였 습 니 다./opt/poky/1.7 디 렉 터 리 에 있 으 며 셸 에 다음 명령 을 입력 하면 이 셸 스 크 립 트 를 가 져 올 수 있 습 니 다.
source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

그리고 poky 환경 을 바탕 으로 커 널 및 장치 트 리 의 컴 파일 개발 을 할 수 있어 서 매우 편리 합 니 다.
비교:
"source filename"과 "sh filename", "./filename"세 명령 모두 스 크 립 트 파일 을 실행 하 는 데 사용 할 수 있 습 니 다. 그러면 그 차 이 는 어 떻 습 니까?
  • 셸 스 크 립 트 가 실행 가능 한 권한 이 있 을 때 sh filename 을 사용 하 는 것 은./filename 과 다 를 바 없습니다.filename 은 현재 디 렉 터 리 가 PATH 에 없 기 때문에 "."는 현재 디 렉 터 리 를 나타 내 는 데 사 용 됩 니 다.
  • sh filename 은 하위 셸 에서 스 크 립 트 의 문 구 를 다시 만 듭 니 다. 이 하위 셸 은 부모 셸 의 환경 변 수 를 계승 하지만 하위 셸 은 새로 만 듭 니 다. 변 경 된 변 수 는 부모 셸 을 사용 하지 않 는 한 부모 셸 로 가 져 오지 않 습 니 다.
  • source filename 에서 스 크 립 트 의 문 구 를 읽 고 현재 셸 에서 순서대로 실 행 됩 니 다. 새 하위 셸 을 만 들 지 않 았 습 니 다.스 크 립 트 에 있 는 모든 새로 만 들 고 변 수 를 바 꾸 는 문 구 는 현재 셸 에 저 장 됩 니 다.

  • 예:
  • test. sh 스 크 립 트 를 새로 만 듭 니 다. 내용 은 A = 1 입 니 다.
  • 실행 가능 한 권한 수정: chmod + x test. sh;
  • sh test. sh 를 실행 한 후 echo $A 가 비어 있 습 니 다. A = 1 이 현재 셸 에 전달 되 지 않 았 기 때 문 입 니 다.
  • 실행./test. sh 이후 에 도 같은 효과 가 있 습 니 다.
  • source test. sh 또는. test. sh 를 실행 한 다음 echo $A 는 1 을 표시 합 니 다. A = 1 의 변 수 는 현재 셸 에 있 음 을 설명 합 니 다.

  • 일 을 끝내다

    좋은 웹페이지 즐겨찾기