리눅스에서 쉘 스크립트를 실행하는 방법에는 두 가지가 있습니다. 당신은 사용할 수 있습니다:
bash script.sh
또는 다음과 같이 쉘 스크립트를 실행할 수 있습니다:
./script.sh
그것은 간단 할 수도 있지만 많은 것을 설명하지는 않습니다. 쉘 스크립트를 실행하는 동안 특정 구문이 주어진 형식으로 사용되는 이유를 이해할 수 있도록 예제를 통해 필요한 설명을 할 것입니다.
이 한 줄 셸 스크립트를 사용하여 가능한 한 복잡하지 않게 만들 것입니다:
:~/Scripts$ cat hello.sh echo "Hello World!"
방법 1:파일을
셸에 인수로 전달하여 쉘 스크립트 실행 첫 번째 방법은 스크립트 파일 이름을 셸에 인수로 전달하는 것입니다.
배쉬가 기본 셸임을 고려하면 다음과 같은 스크립트를 실행할 수 있습니다:
bash hello.sh
이 접근법의 장점을 알고 있습니까? 스크립트는 실행 권한을 가질 필요가 없습니다. 빠르고 간단한 작업에 매우 편리합니다.
이미 익숙하지 않은 경우,난 당신이 리눅스에서 파일 권한에 내 자세한 가이드를 읽어 조언한다.
인수로 전달하는 쉘 스크립트여야 합니다. 쉘 스크립트는 명령으로 구성됩니다. 일반 텍스트 파일을 사용하는 경우 잘못된 명령에 대해 불평 할 것입니다.
이 방법에서는 스크립트에 대한 인터프리터로 배쉬를 사용하도록 명시적으로 지정했습니다.
쉘은 프로그램 일 뿐이며 배쉬는 그 구현입니다. 같은 다른 쉘 프로그램이 있습니다. 다른 쉘이 설치되어있는 경우,당신은뿐만 아니라 대신 배쉬를 사용할 수 있습니다.
예를 들어,설치 하 고 동일한 스크립트를 실행 하는 데 사용:
권장 읽기:
방법 2:해당 경로를 지정하여 쉘 스크립트 실행
쉘 스크립트를 실행하는 다른 방법은 해당 경로를 제공하는 것입니다. 그러나 그것을 가능하게하기 위해,당신의 파일은 실행 가능해야합니다. 그렇지 않으면 스크립트를 실행하려고 할 때”권한 거부”오류가 발생합니다.
먼저 스크립트에 실행 권한이 있는지 확인해야 합니다. 이 명령을 사용하여 다음과 같이 권한을 부여 할 수 있습니다:
chmod u+x script.sh
스크립트가 실행되면 절대 또는 상대 경로와 함께 파일 이름을 입력하기 만하면됩니다. 대부분의 경우 동일한 디렉토리에 있으므로 다음과 같이 사용하십시오:
./script.sh
스크립트와 동일한 디렉터리에 있지 않으면 스크립트에 대한 절대 경로 또는 상대 경로를 지정할 수 있습니다:
그./스크립트가 중요하기 전에(스크립트와 동일한 디렉토리에있을 때)
동일한 디렉토리에 있을 때 스크립트 이름을 사용할 수 없는 이유는 무엇입니까? 이는 리눅스 시스템이 경로 변수에 지정된 몇 개의 선택된 디렉토리에서 실행될 실행 파일을 찾기 때문입니다.
내 시스템의 경로 변수 값은 다음과 같습니다.:
:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
즉,다음 디렉터리 중 하나에 실행 권한이 있는 파일은 시스템 어디에서나 실행할 수 있습니다:
- /홈/아비 셱/.2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 1746>
리눅스 명령의 바이너리 또는 실행 파일은 해당 디렉토리 중 하나에 있습니다. 이 때문에 단지 그들의 이름을 사용 하 여 귀하의 시스템에 어디서 나 이러한 명령을 실행할 수 있습니다. 참고:이 명령은 빈 디렉토리에 있습니다.
절대 경로 또는 상대 경로 없이 스크립트를 지정하면 경로 변수에 언급된 디렉터리에서 스크립트를 찾을 수 없습니다.
대부분의 쉘 스크립트에#이 포함 된 이유! 쉘 스크립트의 시작 부분에/빈/배쉬?
쉘은 단지 프로그램 일 뿐이며 쉘의 다른 구현이 있다는 것을 어떻게 언급했는지 기억하십시오.
#을 사용할 때! /빈/배쉬,당신은 스크립트가 인터프리터로 배쉬와 함께 실행하는 것을 지정하는. 그렇게 하지 않으면 스크립트를 실행합니다./스크립트.쉬 방식으로,그것은 일반적으로 당신이 실행하는 어떤 쉘 실행됩니다.
그게 중요합니까? 그것은 할 수 있었다. 대부분의 쉘 구문은 모든 종류의 쉘에서 공통적이지만 일부는 다를 수 있습니다.
배열 인덱스는 0 이 아닌 1 에서 시작됩니다.
를 사용하여#! /빈/배쉬는 스크립트가 배쉬 쉘 스크립트이며 시스템에 사용되는 쉘에 관계없이 인터프리터로서 배쉬와 함께 실행되어야 함을 나타냅니다. 이 스크립트는 다음과 같이 사용할 수 있습니다.*********** 스크립트의 첫 번째 줄.
사이의 공간#! /빈/배쉬는 중요하지 않습니다. 당신은 또한#를 사용할 수 있습니다!/빈/배쉬.
도움이 되었습니까?
이 문서가 리눅스 지식에 추가되기를 바랍니다. 당신은 여전히 질문이나 제안이 있다면,코멘트를 남겨주세요.
전문가 사용자는 여전히 내가 놓친 것에 대해이 기사를 선택할 수 있습니다. 그러나 그런 초심자 화제에 대한 문제는 정보의 적당한 균형을 찾아내고 너무 많이 또는 너무 몇몇 세부사항이 있는 것을 피하는 것은 쉽지 않다 이다.
당신이 배쉬 스크립트를 학습에 관심이 있다면,우리는 우리의 시스템 관리자에 초점을 맞춘 웹 사이트 리눅스 핸드북에 전체 배쉬 초보자 시리즈가 있습니다. 당신이 원하는 경우에,당신은 또한 리눅스 핸드북을 지원하기 위해 추가 연습과 전자 책을 구입할 수 있습니다.
당신이 무엇을 읽고 좋아? 다른 사람과 공유하시기 바랍니다.
50 공유- 페이스 북 0
- 트위터 49
- 링크 1
- 레드딧 0