SW/리눅스

Linux : Bash Source 명령어, 예제, 사용 방법

얇은생각 2021. 10. 4. 07:30
반응형

소스 명령은 현재 셸 환경에서 인수로 지정된 파일에서 명령을 읽고 실행합니다. 기능, 변수 및 구성 파일을 셸 스크립트로 로드하는 데 유용합니다. 

source는 Bash에 내장된 셸이며 Linux 및 유닉스 운영 체제에 사용되는 기타 인기 셸입니다. 이것의 동작은 껍데기마다 약간 다를 수 있습니다.

 

 

Linux : Bash Source 명령어, 예제, 사용 방법

 

 

소스 명령 구문

소스 명령의 구문은 다음과 같습니다.

source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]

 

source 및 .(주기)는 동일한 명령입니다.

파일 이름이 파일의 전체 경로가 아닌 경우 명령은 $PATH 환경 변수에 지정된 디렉토리에서 파일을 검색합니다. $PATH에서 파일을 찾을 수 없는 경우 명령은 현재 디렉토리에서 파일을 찾습니다.

ARGUMENTS가 주어진 경우, 이러한 인수는 파일 이름에 대한 위치 매개변수가 됩니다.

파일 이름이 있으면 소스 명령 종료 코드가 0이고, 그렇지 않으면 파일이 없으면 1을 반환합니다.

 

 

 

소스 명령 예제

이 섹션에서는 소스 명령의 사용 방법에 대한 몇 가지 기본적인 예를 살펴보겠습니다.

 

 

소싱 함수

동일한 함수를 사용하는 셸 스크립트가 있는 경우 개별 파일에 압축을 푼 다음 해당 파일을 스크립트에서 소싱할 수 있습니다. 

이 예에서는 스크립트를 실행하는 사용자가 루트인지 여부를 확인하는 bash 기능이 포함된 파일을 생성하고, 그렇지 않으면 메시지를 표시하고 스크립트를 종료합니다.

# functions.sh

check_root () {
  if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root" 
    exit 1
  fi
}

 

 

루트 사용자만 실행해야 하는 각 스크립트에서는 functions.sh 파일을 생성하고 함수를 호출하고 소싱하기만 하면 됩니다.

#!/usr/bin/env bash

source functions.sh
check_root

echo "I am root"

 

 

위의 스크립트를 루트 이외의 사용자로 실행하면 "이 스크립트는 루트로 실행되어야 합니다"가 출력되고 종료됩니다.

이 접근 방식의 이점은 스크립트가 더 작고 읽기 쉬우며 필요할 때마다 동일한 기능 파일을 재사용할 수 있다는 것입니다. 기능을 수정해야 하는 경우에는 파일 하나만 편집할 수 있습니다.

 

 

 

Bash 구성 파일

소스 명령을 사용하여 파일에서 변수를 읽을 수도 있습니다. 변수는 Bash 구문 VAULAR=VALUE를 사용하여 설정해야 합니다. 

테스트 구성 파일을 생성하겠습니다.

# config.sh

VAR1="foo"
VAR2="bar"

 

 

bash 스크립트에서 source 명령을 사용하여 구성 파일을 읽습니다.

#!/usr/bin/env bash

source config.sh

echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"

 

 

 스크립트를 실행하는 경우 출력은 다음과 같습니다.

VAR1 is foo
VAR2 is bar

 

반응형