콘텐츠로 이동

Bash - 첫 번째 스크립트

이 장에서는 bash로 첫 번째 스크립트를 작성하는 방법을 배울 것입니다.


목적: 이 문서에서는 다음을 수행하는 방법에 대해 알아볼 것 입니다:

✔ bash에서 첫 번째 스크립트 작성하는 방법 ✔ 첫 번째 스크립트를 실행하는 방법 ✔ shebang를 사용하여 어떤 셸을 사용할지 지정하는 방법

🏁 linux, 스크립트, bash

지식: ⭐
복잡성: ⭐

소요 시간: 10분


나의 첫 번째 스크립트

셸 스크립트 작성을 시작하려면 문법 강조 기능을 지원하는 텍스트 편집기를 사용하는 것이 편리합니다.

예를 들어 vim은 이를 위한 좋은 도구입니다.

스크립트의 이름은 다음 규칙을 따라야 합니다.

  • 기존 명령의 이름이 없습니다.
  • 영숫자만 사용할 수 있습니다. 즉, 강조 기호나 공백은 사용할 수 없습니다.
  • 셸 스크립트임을 나타내는 .sh 확장자 사용합니다.

참고

이 문서에서는 사용자의 커맨드 프롬프트를 나타내기 위해 "$" 기호를 사용합니다.

#!/usr/bin/env bash
#
# Author : Rocky Documentation Team
# Date: March 2022
# Version 1.0.0: "Hello world!"
텍스트를 표시합니다
#

#화면에 텍스트 표시:
echo "Hello world!"

이 스크립트를 실행하려면 bash의 인수로 다음과 같이 호출해야 합니다.

$ bash hello-world.sh
Hello world !

또는 더 간단하게, 실행 권한을 부여한 후에 다음과 같이 실행합니다.

$ chmod u+x ./hello-world.sh
$ ./hello-world.sh
Hello world !

참고

스크립트를 실행하려면 스크립트가 있는 디렉토리에 있을 때에는 스크립트 이름 앞에 ./를 붙여 호출해야 합니다. 해당 디렉토리가 아닌 경우, 스크립트의 전체 경로로 호출하거나 PATH 환경 변수에 속한 디렉토리(예: /usr/local/sbin, /usr/local/bin 등)에 스크립트를 배치해야 합니다. 인터프리터는 경로를 지정하지 않고 현재 디렉토리에 있는 스크립트를 실행하는 것을 거부합니다(여기에서는 앞에 ./가 있는 경우).

chmod 명령은 새로 생성한 스크립트에만 한 번 사용되어야 합니다.

어떤 스크립트든지 첫 번째로 작성해야 할 줄은 스크립트를 실행하기 위해 사용할 셸 바이너리의 이름을 지정하는 것입니다. ksh 셸 또는 인터프리터 언어인 python을 사용하려면 다음 줄을 대체합니다.

#!/usr/bin/env bash

그리고 :

#!/usr/bin/env ksh

또는 다음과 같이 대체합니다.

#!/usr/bin/env python

이 첫 번째 줄을 shebang이라고 합니다. 이는 사용할 명령 해석기 바이너리의 경로를 나타내는 #! 문자로 시작합니다.

Shebang에 대해

"env" 섹션을 포함하지 않고 단순히 사용할 인터프리터를 포함하는 스크립트에서 "shebang"을 발견했을 수 있습니다. (예: #!/bin/bash). 저자의 방법은 "shebang"을 올바르게 포맷팅하는 적절하고 권장되는 방법입니다.

왜 저자의 방법이 권장되는 걸까요? 이는 스크립트의 이식성을 높여줍니다. 어떤 이유로 인해 인터프리터가 완전히 다른 디렉토리에 있다고 해도, 저자의 방법을 사용하면 **여전히 ** 인터프리터를 찾을 수 있습니다.

코드를 작성하는 동안, 특히 주석을 사용하여 스크립트를 교정해야 합니다.

  • 처음에는 스크립트의 목적, 저자, 버전, 사용 방법 등을 나타내는 일반적인 소개를 작성합니다.
  • 작업을 이해하는 데 도움이 되도록 텍스트 중간에 주석을 추가합니다.

주석은 별도의 줄에 작성하거나 명령이 포함된 줄 끝에 작성할 수 있습니다.

예시:

# 이 프로그램은 날짜를 표시합니다
date # 이 줄은 날짜를 표시하는 줄입니다!

Author: Antoine Le Morvan

Contributors: Steven Spencer