거의 모든 프로그래밍 언어 자습서는 유명한 "Hello World"로 시작합니다.이 전통을 존중하기 위해 (또는 고정 관념에 속함) 첫 번째 Shell 스크립트는 "Hello World"도 출력합니다.
텍스트 편집기를 열고 새 텍스트 파일을 만들고 이름을 test.sh로 지정합니다.
확장자 sh는 쉘을 나타내며 확장자는 스크립트 실행에 영향을주지 않습니다. 이름의 의미를 아는 것이 php좋습니다. php로 쉘 스크립트를 작성하면 확장자가 좋습니다.
test.sh에 코드를 입력하십시오.
- #! / bin / bash
- echo "Hello World!" # 이것은 문장입니다
첫 번째 줄 #!은 합의 된 표시로, 스크립트를 실행해야하는 인터프리터, 즉 어떤 종류의 쉘이 사용되는지 시스템에 알려주고 후자 /bin/bash는 인터프리터의 특정 위치입니다.
2 행의 echo 명령은 텍스트를 표준 출력 파일로 출력하는 데 사용됩니다 (표준 출력, stdout, 일반적으로 디스플레이를 나타냄). .sh파일 에서 명령 을 사용 하는 것은 터미널에서 직접 명령을 입력하는 것과 동일한 효과를 갖습니다.
2 행의 #내용은 주석입니다. 쉘 스크립트 #의 모든 시작은 주석입니다 (물론 #!시작은 제외). 스크립트를 작성할 때 다른 사람들이 스크립트를 이해할 수 있도록 더 많은 주석을 작성하는 것이 매우 필요하며 나중에 유지 관리 할 때 자신의 스크립트를 이해하는 것도 편리합니다. 사실 스크립트를 작성하더라도, 또한 일정 시간이 지나면 잊기 쉽습니다.
다음은 약간 더 복잡한 쉘 스크립트입니다.
- #! / bin / bash
- # 저작권 (c) http://www.daum.net/shell/
- echo "당신의 이름은 무엇입니까?"
- PERSON 읽기
- echo "안녕하세요, $ PERSON"
다섯 번째 줄은 사용자가 입력 한 데이터를 터미널에서 읽어 PERSON 변수에 할당했음을 나타냅니다. 읽기 명령은 표준 입력 파일 (표준 입력, stdin, 일반적으로 키보드를 나타냄)에서 사용자가 입력 한 데이터를 읽는 데 사용됩니다.
6 행은 출력 변수 PERSON의 내용을 나타냅니다. $변수 이름 앞에 추가해야합니다 . 그렇지 않으면 변수 이름이 문자열의 일부로 처리됩니다.
★ 새 프로세스에서 셸 스크립트 실행
새 프로세스에서 쉘 스크립트를 실행하는 방법에는 여러 가지가 있습니다.
1) 프로그램으로 셸 스크립트 실행
셸 스크립트는 또한 아래와 같이 터미널에서 직접 호출 할 수있는 일종의 해석 실행 프로그램입니다 (셸 스크립트에 실행 권한을 추가하려면 chmod 명령을 사용해야 함).
[backhyung @ localhost ~] $ cd demo # test.sh가있는 디렉토리로 전환합니다.
[backhyung @ localhost demo] $ chmod + x ./test.sh # 스크립트에 실행 권한 추가
[backhyung @ localhost demo] $ ./test.sh # 스크립트 파일 실행
Hello World! #Run 결과
두 번째 줄에서는 chmod +xtest.sh에 실행 권한이 추가되었음을 의미합니다.
3 행에서는 ./현재 디렉토리를 나타내고 전체 명령은 현재 디렉토리에서 test.sh 스크립트를 실행하는 것을 의미합니다. 작성하지 않으면 ./Linux는 시스템 경로 (PATH 환경 변수에 의해 지정됨)에서 test.sh를 찾지 만 스크립트가 시스템 경로에 분명히 존재하지 않으므로 실행이 실패합니다.
이러한 방식으로 스크립트를 실행하려면 #!/bin/bash시스템이 올바른 인터프리터를 찾을 수 있도록 스크립트 파일의 첫 번째 줄을 올바르게 작성해야합니다.
2) Bash 인터프리터에 셸 스크립트를 매개 변수로 전달
또한 아래와 같이 Bash 인터프리터를 직접 실행하고 스크립트 파일의 이름을 매개 변수로 Bash에 전달할 수 있습니다.
[backhyung @ localhost ~] $ cd demo # test.sh가있는 디렉토리로 전환합니다.
[backhyung @ localhost demo] $ / bin / bash test.sh #Bash의 절대 경로 사용
Hello World! #Run 결과
이러한 방식으로 스크립트를 실행하려면 스크립트 파일의 첫 번째 줄에 인터프리터 정보를 지정할 필요가 없으며 작성하는 것도 쓸모가 없습니다.
더 간결한 방법은 bash 명령을 실행하는 것입니다. Bash는 외부 명령입니다. 쉘은 " 쉘 명령의 본질 "섹션에서 언급 한 / bin 디렉토리, 즉 / bin / bash에서 해당 응용 프로그램을 찾습니다 .
[backhyung @ localhost ~] $ cd demo
[backhyung @ localhost demo] $ bash test.sh
안녕하세요!
두 가지 작성 방법은 본질적으로 동일합니다. 첫 번째 작성 방법은 절대 경로를 제공하여 Bash 인터프리터를 직접 실행합니다. 두 번째 작성 방법은 bash 명령을 사용하여 Bash 인터프리터가있는 디렉토리를 찾은 다음 다시 실행합니다. 검색 과정 일뿐입니다.
새 프로세스가 시작되었는지 확인
Linux의 모든 프로세스에는 PID라는 고유 ID $$가 있으며 변수를 사용 하여 현재 프로세스의 PID를 가져올 수 있습니다 . $$이것은 Shell의 특수 변수입니다.
먼저 다음 스크립트 파일을 작성하고 이름을 check.sh로 지정합니다.
- #! / bin / bash
- echo $$ # 출력 전류 프로세스 PID
그런 다음 위의 두 가지 방법을 사용하여 check.sh를 실행합니다.
[backhyung @ localhost demo] $ echo $$
2861 #PID 현재 프로세스의
[backhyung @ localhost demo] $ chmod + x ./check.sh
[backhyung @ localhost demo] $ ./check.sh
4597 #PID 새 프로세스
[backhyung @ localhost demo] $ echo $$
2861 #PID 현재 프로세스의
[backhyung @ localhost demo] $ / bin / bash check.sh
4584 #PID 새 프로세스
보시다시피 프로세스의 PID는 다릅니다. 물론 두 개의 프로세스가 있습니다.
'Linux' 카테고리의 다른 글
셸 변수 : 셸 변수의 정의, 할당 및 삭제 - 1장 (0) | 2020.10.07 |
---|---|
쉘 스크립트 - 현재 프로세스에서 쉘 스크립트 실행 (0) | 2020.10.07 |
Linux 셸 명령 프롬프트 (0) | 2020.10.07 |
Linux Shell 명령의 기본 형식 - 매개변수 (0) | 2020.10.07 |
Linux Shell 명령의 기본 형식 - 옵션사용 (0) | 2020.10.06 |