본문 바로가기

언어/Bash

[ Bash ] source로 shell에 명령어 추가하기

반응형

유닉스 계열 시스템에서 source 명령어는 스크립트를 현재 셸 환경에서 실행하기 위해 사용됩니다.
source 명령어는 주로 셸 스크립트 내에서 설정한 변수나 함수를 현재 셸 세션에 적용할 때 유용합니다.
source 명령어는 Bash와 같은 많은 셸에서 제공되며, 일부 셸에서는 . (마침표) 명령어로 동일한 기능을 수행합니다.

1. source 명령어의 주요 기능

  1. 스크립트 실행:
    • 스크립트를 현재 셸 환경에서 실행하여, 스크립트에서 정의된 변수, 함수, alias 등을 현재 셸 세션에 적용합니다.
  2. 환경 설정 파일 로드:
    • 셸 환경 설정 파일(.bashrc, .profile 등)을 현재 셸 세션에 로드하여 설정을 즉시 적용할 수 있습니다.

2. 기본 사용법

source filename

또는

. filename

3. 예제

1. 변수 설정 스크립트 실행

vars.sh라는 스크립트가 있다고 가정해봅시다. 이 스크립트는 환경 변수를 설정합니다.

# vars.sh
export MY_VAR="Hello, World!"

이 스크립트를 source 명령어로 실행하면, 설정된 변수가 현재 셸 세션에 적용됩니다.

source vars.sh
echo $MY_VAR  # 출력: Hello, World!

2. 함수 정의 스크립트 실행

functions.sh라는 스크립트가 있다고 가정해봅시다. 이 스크립트는 함수를 정의합니다.

# functions.sh
my_function() {
  echo "This is my function"
}

이 스크립트를 source 명령어로 실행하면, 정의된 함수를 현재 셸 세션에서 사용할 수 있습니다.

source functions.sh
my_function  # 출력: This is my function

3. 환경 설정 파일 로드

유닉스 계열 시스템에서 셸 환경 설정 파일을 다시 로드하여 변경 사항을 적용할 때 source 명령어를 사용합니다. 예를 들어, .bashrc 파일을 편집한 후 변경 사항을 즉시 적용하려면 다음과 같이 할 수 있습니다.

source ~/.bashrc

4. 차이점: source vs. 실행 권한

source 명령어와 스크립트를 직접 실행하는 것의 차이는 실행 환경에 있습니다. 스크립트를 직접 실행할 때는 자식 셸에서 실행되고, source 명령어는 현재 셸에서 실행됩니다.

1. 스크립트 직접 실행

./vars.sh

이 경우, vars.sh 스크립트에서 설정한 변수는 자식 셸에서만 유효하며, 현재 셸 세션에서는 적용되지 않습니다.

2. source 명령어 사용

source vars.sh

이 경우, vars.sh 스크립트에서 설정한 변수는 현재 셸 세션에 적용됩니다.

5. 요약

  • source 명령어: 스크립트를 현재 셸 환경에서 실행합니다. 셸 스크립트에서 설정된 변수, 함수, alias 등을 현재 셸 세션에 적용합니다.
  • 기본 사용법: source filename 또는 . filename
  • 주요 용도:
    • 환경 설정 파일 로드
    • 스크립트에서 정의된 설정을 현재 셸 세션에 적용
    • 함수 및 변수 정의를 현재 셸에서 사용 가능하게 설정
반응형