웹사이트 검색

Linux에서 쉘 스크립트로 명령을 실행하는 방법


소개

Shell은 사용자가 시스템과 상호 작용할 수 있도록 하는 명령줄 해석기입니다. 사용자로부터 입력을 받고 출력을 표시하는 역할을 합니다.

쉘 스크립트는 실행 순서대로 작성된 일련의 명령입니다. 이러한 스크립트에는 함수, 루프, 명령 및 변수가 포함될 수 있습니다. 스크립트는 복잡한 일련의 명령과 반복 작업을 단순화하는 데 유용합니다.

이 문서에서는 Linux에서 명령줄용 셸 스크립트를 만들고 실행하는 방법을 배웁니다.

전제 조건

이 자습서를 완료하려면 다음이 필요합니다.

  • 단말기 사용에 익숙함.
  • 텍스트 편집기에 익숙함.
  • chmod, mkdircd와 같은 명령에 익숙합니다.

시작하기

셸 스크립트는 .sh 확장자로 저장해야 합니다.

파일은 shebang 라인(#!)으로 시작해야 Linux 시스템이 쉘 스크립트에 사용할 인터프리터를 알 수 있습니다.

bash를 지원하는 환경의 경우 다음을 사용하십시오.

#!/bin/bash 

shell을 지원하는 환경의 경우 다음을 사용합니다.

#!/bin/sh

이 자습서에서는 환경이 bash를 지원한다고 가정합니다.

쉘 스크립트는 가독성을 높이기 위해 주석을 포함할 수도 있습니다. 좋은 스크립트에는 항상 독자가 스크립트가 수행하는 작업과 디자인 선택의 이유를 정확히 이해하는 데 도움이 되는 설명이 포함되어 있습니다.

기본 셸 스크립트 생성 및 실행

vi 편집기, cat 명령 또는 텍스트 편집기를 사용하여 쉘 스크립트를 작성할 수 있습니다.

이 자습서에서는 vi를 사용하여 셸 스크립트를 만드는 방법을 배웁니다.

  1. vi basic_script.sh

이렇게 하면 vi 편집기가 시작되고 basic_script.sh 파일이 생성됩니다.

그런 다음 키보드에서 i를 눌러 INSERT MODE를 시작합니다. 다음 줄을 추가합니다.

#!/bin/bash
whoami
date

이 스크립트는 whoamidate 명령을 실행합니다. whoami는 활성 사용자 이름을 표시합니다. 날짜는 현재 시스템 타임스탬프를 표시합니다.

vi 편집기를 저장하고 종료하려면:

  • ESC를 누르십시오
  • 입력:(콜론 문자)
  • 유형 wq
  • ENTER를 누르십시오

마지막으로 다음 명령을 사용하여 스크립트를 실행할 수 있습니다.

  1. bash basic_script.sh

다음과 유사한 출력을 얻을 수 있습니다.

Output
root Fri Jun 19 16:59:48 UTC 2020

출력의 첫 번째 줄은 whoami 명령에 해당합니다. 출력의 두 번째 줄은 date 명령에 해당합니다.

bash를 지정하지 않고 스크립트를 실행할 수도 있습니다.

  1. ./basic_script.sh

이 방법으로 파일을 실행하려면 사용자가 먼저 권한을 부여해야 할 수 있습니다. bash로 실행하는 데는 이 권한이 필요하지 않습니다.

Output
~bash: ./basic_script.sh: Permission denied

bash filename 명령에는 파일의 읽기 권한만 필요합니다.

반면 ./파일 이름 명령은 파일을 실행 파일로 실행하며 실행 권한이 필요합니다.

스크립트를 실행하려면 권한을 업데이트해야 합니다.

  1. chmod +x basic_script.sh

이 명령은 chmod를 적용하고 현재 사용자에게 x(실행 가능) 권한을 부여합니다.

쉘 스크립트에서 변수 사용

스크립트는 사용자 정의 변수를 포함할 수 있습니다. 실제로 스크립트의 크기가 커짐에 따라 명확하게 정의되고 자체 설명이 포함된 변수가 있어야 합니다.

스크립트에 다음 줄을 추가합니다.

#!/bin/bash
# This is a comment

# defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

GREETINGS는 정의된 변수이며 나중에 $(달러 기호 기호)를 사용하여 액세스합니다. 변수에 값이 할당되는 줄에는 공백이 없어야 합니다.

스크립트를 실행합니다.

  1. bash basic_script.sh

이것은 변수에 할당된 값을 출력합니다:

Output
Hello! How are you

스크립트가 실행되면 GREETINGS가 정의되고 액세스됩니다.

명령줄에서 입력 읽기

셸 스크립트는 명령줄에서 입력을 수락하는 기능을 사용하여 대화형으로 만들 수 있습니다. read 명령을 사용하여 명령줄 입력을 변수에 저장할 수 있습니다.

스크립트에 다음 줄을 추가합니다.

#!/bin/bash
# This is a comment

# defining a variable
echo "What is your name?"
# reading input
read NAME
# defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS               

변수 NAME이 명령줄에서 입력을 받는 데 사용되었습니다. 이 스크립트는 사용자가 NAME에 대한 입력을 제공할 때까지 기다립니다. 그런 다음 NAMEGREETINGS를 인쇄합니다.

Output
What is your name? Sammy Sammy Hello! How are you

이 예에서 사용자는 이름이 Sammy인 프롬프트를 제공했습니다.

함수 정의

사용자는 스크립트에서 자신의 기능을 정의할 수 있습니다. 이러한 함수는 여러 인수를 사용할 수 있습니다.

스크립트에 다음 줄을 추가합니다.

#!/bin/bash
#This is a comment

# defining a variable
echo "What is the name of the directory you want to create?"
# reading input 
read NAME

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

이 스크립트는 사용자에게 디렉토리 이름을 묻습니다. 그런 다음 mkdir을 사용하여 디렉토리를 만들고 cd를 그 안에 넣습니다.

Output
What is the name of the directory you want to create? test_dir Creating test_dir ... You are now in test_dir

이 예에서 사용자는 프롬프트에 test_dir 입력을 제공했습니다. 다음으로 스크립트는 해당 이름으로 새 디렉터리를 만듭니다. 마지막으로 스크립트는 사용자의 현재 작업 디렉토리를 test_dir로 변경합니다.

결론

이 기사에서는 Linux에서 명령줄용 셸 스크립트를 만들고 실행하는 방법을 배웠습니다.

스크립트의 이점을 누릴 수 있는 반복적이거나 시간이 많이 걸리는 자주 수행하는 작업을 고려하십시오.

명령줄에서 인수를 사용하여 학습을 계속합니다.