
.sh
홈 디렉토리에서 바로 실행할 수 있는 확장자를 사용하여 홈 디렉토리에 간단한 스크립트를 작성했지만 현재 있는 모든 디렉토리에서 스크립트를 실행하고 싶습니다. 어떻게 해야 합니까?
답변1
대화형 방식으로 언제든지 명령줄에 입력하여 스크립트를 실행할 수 있지만 ~/yourscript.sh
이는 매우 제한적입니다. 특히 이미 작성한 스크립트를 호출하는 스크립트를 더 많이 작성하려는 경우에는 더욱 그렇습니다.
보다 통합되고 유연한 접근 방식은 모든 스크립트를 하나의 디렉터리에 넣고 해당 디렉터리를 PATH
환경 변수에 추가하는 것입니다.
그런 다음 를 입력할 수 있으며 yourscript.sh
, 어떤 디렉토리에 있든 쉘이 스크립트를 찾아 실행합니다.
일반적으로 수행되는 방법은 다음과 같습니다.
bin
홈 디렉토리 아래에 디렉토리를 만들고mv
그 안에 스크립트를 넣으세요.- 모든 스크립트를 실행 가능(
chmod +x
)으로 변경합니다. PATH
환경 변수 에 디렉터리가 포함되어 있는지 확인하세요$HOME/bin
. 일부 시스템에서는 기본값이 자동 으로 디렉터리를~/.profile
추가하므로 수정하기 전에 확인하세요 .$HOME/bin
PATH
~/.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