임의의 디렉토리에서 쉘 스크립트를 실행하는 방법

임의의 디렉토리에서 쉘 스크립트를 실행하는 방법

홈 디렉토리에서 직접 실행할 수 있는 확장자를 포함하는 간단한 스크립트를 홈 .sh디렉토리에 작성했지만 현재 있는 모든 디렉토리에서 스크립트를 실행하고 싶습니다. 어떻게 해야 합니까?

답변1

대화형 방식으로 언제든지 명령줄에 입력하여 스크립트를 실행할 수 있지만 ~/yourscript.sh이는 매우 제한적입니다. 특히 이미 작성한 스크립트를 호출하는 스크립트를 더 많이 작성하려는 경우에는 더욱 그렇습니다.

보다 통합되고 유연한 접근 방식은 모든 스크립트를 하나의 디렉터리에 넣고 해당 디렉터리를 PATH환경 변수에 추가하는 것입니다.

이 작업을 완료하면 입력할 수 yourscript.sh있으며 쉘은 현재 있는 디렉토리에 관계없이 스크립트를 찾아 실행합니다.

이는 일반적으로 다음과 같이 수행됩니다.

  1. bin홈 디렉터리 아래에 디렉터리를 만들고 mv그 안에 스크립트를 넣습니다.
  2. 모든 스크립트를 실행 파일( chmod +x)로 변경합니다.
  3. PATH환경 변수에 디렉터리가 포함되어 있는지 확인하세요 $HOME/bin. 일부 시스템에서는 기본적 으로 ~/.profile디렉터리가 자동으로 추가되므로 수정 하기 전에 디렉터리를 확인하세요.$HOME/binPATH~/.profile

몇 가지 스크립트를 사용하여 설명하겠습니다.

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

bin디렉토리가 보이면 로그 아웃했다가 다시 로그인하여 다른 디렉토리로 변경하고 다시 수행하여 모든 것이 올바르게 설정되었는지 확인하는 것이 PATH좋습니다 .type yourscript.sh

관련 정보