가이드: Bash 스크립트 디렉토리 가져오기

가이드: Bash 스크립트 디렉토리 가져오기
Bash Script

Bash 스크립트 디렉터리 검색 이해

Bash 스크립트로 작업할 때 스크립트가 있는 디렉터리를 알아야 하는 경우가 많습니다. 이는 작업 디렉터리 설정이나 스크립트 위치를 기준으로 파일에 액세스하는 등 다양한 작업에 유용할 수 있습니다.

이 가이드에서는 스크립트 자체 내에서 Bash 스크립트의 디렉터리 경로를 검색하는 방법을 살펴보겠습니다. 이 접근 방식은 스크립트가 다른 응용 프로그램의 실행 프로그램 역할을 하여 올바른 파일에서 작동하도록 하려는 경우 특히 유용합니다.

명령 설명
readlink -f Bash 스크립트의 절대 경로를 제공하여 심볼릭 링크의 전체 경로를 확인합니다.
dirname 스크립트의 디렉터리를 결정하는 데 사용되는 지정된 파일 경로에서 디렉터리 경로를 추출합니다.
os.path.realpath(__file__) Python의 모든 기호 링크를 확인하여 지정된 파일의 정식 경로를 반환합니다.
os.chdir() 현재 작업 디렉터리를 Python의 지정된 경로로 변경합니다.
abs_path($0) Perl에서 실행되는 스크립트의 절대 경로를 제공합니다.
chdir() 현재 작업 디렉터리를 Perl 및 PHP에서 지정된 경로로 변경합니다.
system() Perl의 스크립트 내에서 외부 명령을 실행합니다.
exec() PHP의 스크립트 내에서 외부 프로그램을 실행하여 현재 프로세스를 대체합니다.

자세한 스크립트 설명

제공된 스크립트는 해당 스크립트가 위치한 디렉터리를 결정하고 작업 디렉터리를 해당 경로로 변경하도록 설계되었습니다. 이는 스크립트가 자체 디렉터리 내의 파일에 대해 작업을 수행해야 하거나 해당 위치에서 다른 응용 프로그램을 시작해야 할 때 유용합니다. 예를 들어, Bash 스크립트에서 다음 명령은 readlink -f 스크립트의 절대 경로를 얻는 데 사용됩니다. dirname 해당 경로에서 디렉터리를 추출합니다. 그런 다음, cd 명령은 현재 작업 디렉터리를 스크립트 디렉터리로 변경하여 후속 명령이 올바른 위치에서 작동하도록 합니다.

Python 예제에서는 스크립트의 절대 경로를 얻고, os.chdir() 작업 디렉토리를 변경합니다. Perl 스크립트는 다음을 사용합니다. abs_path($0) 스크립트의 절대 경로를 얻으려면 chdir() 디렉토리를 변경하려면. 마찬가지로 PHP 스크립트는 다음을 사용합니다. realpath(__FILE__) 스크립트의 경로를 찾고 chdir() 디렉토리를 변경하려면. 각 스크립트는 응용 프로그램을 시작하는 명령으로 끝나며 응용 프로그램이 스크립트 디렉터리의 컨텍스트에서 실행되도록 합니다.

Bash 스크립트의 디렉토리 결정

Bash 스크립트 예

#!/bin/bash
# Get the directory of the script
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
echo "The script is located in: $SCRIPT_DIR"

# Change to the script's directory
cd "$SCRIPT_DIR" || exit

# Execute the application
./application

스크립트 디렉토리 검색을 위한 Python 대안

Python 스크립트 예

#!/usr/bin/env python3
import os
import sys

# Get the directory of the script
script_dir = os.path.dirname(os.path.realpath(__file__))
print(f"The script is located in: {script_dir}")

# Change to the script's directory
os.chdir(script_dir)

# Execute the application
os.system('./application')

스크립트 디렉토리를 결정하기 위한 Perl 스크립트

Perl 스크립트 예

#!/usr/bin/env perl
use Cwd 'abs_path';
use File::Basename;

# Get the directory of the script
$script_dir = dirname(abs_path($0));
print "The script is located in: $script_dir\n";

# Change to the script's directory
chdir $script_dir or die "Cannot change directory: $!";

# Execute the application
system('./application');

디렉토리를 찾는 PHP 스크립트

PHP 스크립트 예

스크립트 디렉터리를 결정하는 대체 방법

이전에 언급한 방법 외에도 Bash 스크립트의 디렉터리를 결정하는 다른 기술이 있습니다. 그러한 방법 중 하나는 환경 변수를 사용하는 것입니다. 예를 들어, $BASH_SOURCE 변수에는 Bash 스크립트의 파일 경로가 포함되어 있으며, 이는 다른 스크립트에서 제공되는 스크립트에 유용할 수 있습니다. 또 다른 접근 방식은 명령줄 인수를 활용하는 것입니다. 분석하여 $0 실행 중인 스크립트의 이름이 포함된 매개변수를 사용하면 심볼릭 링크나 소스 파일과 같은 다양한 컨텍스트에서 실행될 때 스크립트의 위치를 ​​확인할 수 있습니다.

이러한 대체 방법은 스크립트가 사용되는 상황에 따라 유연성을 제공할 수 있습니다. 예를 들어, 심볼릭 링크를 다룰 때, readlink 스크립트의 실제 경로를 확인하는 데 필요한 경우가 많습니다. 이러한 다양한 기술을 이해하면 스크립트가 강력하고 다양한 실행 환경에 적응할 수 있어 유틸리티와 안정성이 향상됩니다.

자주 묻는 질문

  1. 다음을 사용하여 스크립트 디렉토리를 얻는 방법 $BASH_SOURCE?
  2. 당신이 사용할 수있는 dirname "$(realpath "${BASH_SOURCE[0]}")" 스크립트의 디렉토리를 얻으려면.
  3. 차이점은 무엇 입니까? $0 그리고 $BASH_SOURCE?
  4. $0 은 실행 중인 스크립트의 이름이고, $BASH_SOURCE 소스 스크립트의 전체 경로를 포함합니다.
  5. 사용해도 되나요 readlink 심볼릭 링크가 있습니까?
  6. 예, readlink -f 심볼릭 링크의 전체 경로를 확인합니다.
  7. 무엇을 os.chdir() 파이썬에서 합니까?
  8. os.chdir() 현재 작업 디렉터리를 지정된 경로로 변경합니다.
  9. Perl에서 스크립트의 절대 경로를 어떻게 얻나요?
  10. 사용 abs_path($0) Cwd 모듈에서 스크립트의 절대 경로를 제공합니다.
  11. 외부 프로그램을 실행하기 위해 PHP에서 어떤 명령이 사용됩니까?
  12. exec() PHP에서 외부 프로그램을 실행하는 데 사용됩니다.
  13. PHP에서 디렉토리를 어떻게 변경합니까?
  14. chdir() PHP에서 현재 작업 디렉토리를 변경하는 데 사용됩니다.
  15. 왜? dirname 스크립트에 유용합니까?
  16. dirname 주어진 파일 경로에서 디렉토리 경로를 추출하여 스크립트 디렉토리를 찾는 데 도움을 줍니다.

스크립트 디렉토리 검색에 대한 최종 생각

Bash 스크립트의 디렉터리를 결정하는 것은 로컬 파일에서 작동하거나 애플리케이션을 시작해야 하는 스크립트에 중요한 작업입니다. 다음과 같은 명령을 사용하여 readlink, dirname, 환경 변수를 활용하여 스크립트는 작업 디렉터리를 동적으로 조정할 수 있습니다. 이렇게 하면 스크립트가 실행되는 위치에 관계없이 스크립트가 올바르게 작동하도록 보장됩니다. 이러한 방법을 이해하고 구현하면 스크립트의 유연성과 안정성이 향상되어 다양한 애플리케이션과 사용 사례에서 스크립트가 더욱 효율적으로 만들어집니다.