쉘 스크립트 옵션 실행

쉘 스크립트 옵션 실행

나는 보통 cd Directory/Directory/쉘 디렉토리를 가리키고 를 입력하는 데 익숙 bash shell.sh하지만, 한 줄로 내 쉘과 위치를 실행하는 더 쉬운 방법이 있는지 궁금합니다. 저는 다른 폴더로 자주 이동합니다.

예: alpha라는 쉘 스크립트가 포함된 unix 폴더

cd Desktop/unix
bash alpha.sh

답변1

스크립트 파일을 실행 가능하게 만드는 경우:

chmod o+x alpha.sh

#!/bin/bash호출하는 데 사용할 필요가 없는 적절한 shebang()을 맨 위에 포함합니다 bash. man chmod설명을 보려면 참조 를 o+x참조하세요 a+x.

경로는 Rahul이 제안한 대로 추가하거나 $PATH에 추가하지 않고 비슷한 작업을 수행할 수 있습니다. 예를 들면 다음과 같습니다.

export SCRIPTS=~/Desktop/unix

이제 다음 실행 파일 중 하나를 사용할 수 있습니다.

$SCRIPTS/alpha.sh

답변2

PATH이를 시스템 환경에서 설정할 수 있습니다 .

export PATH=$PATH:/absolute/path/Desktop/unix

위 줄을 파일에 넣을 수도 ~/bashrc있으며 그런 다음 경로를 다시 설정할 필요가 없습니다.

참고:- 스크립트는 해당 위치에서 실행 가능해야 하며 그런 다음 모든 디렉터리에서 스크립트를 실행할 수 있습니다.

인용하다이것자세한 내용은 페이지

답변3

다른 관점에서 답변하면 *nix 환경을 더 잘 이해하는 데 도움이 될 수 있습니다.

*nux에서 알고 있는 모든 명령/유틸리티는 일부 또는 다른 디렉토리에 존재하며, whereis, 또는 which명령을 사용하여 찾을 수 있습니다.

$ which ls
/bin/ls
$ which sort
/usr/bin/sort

그렇다면 명령을 실행하려는 대상을 어떻게 찾을 수 있습니까?

답은 PATH변수입니다. 를 실행하면 콜론 으로 구분된 디렉터리 목록이 echo $PATH표시됩니다 .:

$PATH에 대한 출력 예

/home/mtk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.9.1/bin/:/usr/local/ant/apache-ant-1.8.3/bin

따라서 실행 파일을 이러한 위치 중 하나에 배치하면 다른 시스템 명령처럼 실행할 수 있습니다. PATH또는 전체 셸에서 사용할 수 있도록 변수에 추가하고 내보내어 이 목록에 자신이 정의한 디렉터리를 추가할 수 있습니다.

export PATH=$PATH:/home/mtk/myUtilities/bin

.bashrc셸을 시작할 때마다 위 명령을 실행할 필요가 없도록 이 특정 줄을 파일에 추가할 수 있습니다 .

재미로

변수를 변경하고 비워두면 다시 적절하게 재설정될 PATH때까지 쓸모없는 쉘이 생성됩니다 .PATH

$ export PATH=""
$ ls
bash: ls: No such file or directory
$ which pwd
bash: which: No such file or directory

관련 정보