홈 디렉토리에서 직접 실행할 수 있는 확장자를 포함하는 간단한 스크립트를 홈 .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