Linux에서 쉘 스크립트로 명령을 실행하는 방법
소개
Shell은 사용자가 시스템과 상호 작용할 수 있도록 하는 명령줄 해석기입니다. 사용자로부터 입력을 받고 출력을 표시하는 역할을 합니다.
쉘 스크립트는 실행 순서대로 작성된 일련의 명령입니다. 이러한 스크립트에는 함수, 루프, 명령 및 변수가 포함될 수 있습니다. 스크립트는 복잡한 일련의 명령과 반복 작업을 단순화하는 데 유용합니다.
이 문서에서는 Linux에서 명령줄용 셸 스크립트를 만들고 실행하는 방법을 배웁니다.
전제 조건
이 자습서를 완료하려면 다음이 필요합니다.
- 단말기 사용에 익숙함.
- 텍스트 편집기에 익숙함.
chmod
,mkdir
및cd
와 같은 명령에 익숙합니다.
시작하기
셸 스크립트는 .sh
확장자로 저장해야 합니다.
파일은 shebang 라인(#!
)으로 시작해야 Linux 시스템이 쉘 스크립트에 사용할 인터프리터를 알 수 있습니다.
bash
를 지원하는 환경의 경우 다음을 사용하십시오.
#!/bin/bash
shell
을 지원하는 환경의 경우 다음을 사용합니다.
#!/bin/sh
이 자습서에서는 환경이 bash
를 지원한다고 가정합니다.
쉘 스크립트는 가독성을 높이기 위해 주석을 포함할 수도 있습니다. 좋은 스크립트에는 항상 독자가 스크립트가 수행하는 작업과 디자인 선택의 이유를 정확히 이해하는 데 도움이 되는 설명이 포함되어 있습니다.
기본 셸 스크립트 생성 및 실행
vi 편집기, cat
명령 또는 텍스트 편집기를 사용하여 쉘 스크립트를 작성할 수 있습니다.
이 자습서에서는 vi
를 사용하여 셸 스크립트를 만드는 방법을 배웁니다.
- vi basic_script.sh
이렇게 하면 vi
편집기가 시작되고 basic_script.sh
파일이 생성됩니다.
그런 다음 키보드에서 i
를 눌러 INSERT MODE
를 시작합니다. 다음 줄을 추가합니다.
#!/bin/bash
whoami
date
이 스크립트는 whoami
및 date
명령을 실행합니다. whoami
는 활성 사용자 이름을 표시합니다. 날짜
는 현재 시스템 타임스탬프를 표시합니다.
vi
편집기를 저장하고 종료하려면:
ESC
를 누르십시오입력:
(콜론 문자)- 유형
wq
ENTER
를 누르십시오
마지막으로 다음 명령을 사용하여 스크립트를 실행할 수 있습니다.
- bash basic_script.sh
다음과 유사한 출력을 얻을 수 있습니다.
Outputroot
Fri Jun 19 16:59:48 UTC 2020
출력의 첫 번째 줄은 whoami
명령에 해당합니다. 출력의 두 번째 줄은 date
명령에 해당합니다.
bash
를 지정하지 않고 스크립트를 실행할 수도 있습니다.
- ./basic_script.sh
이 방법으로 파일을 실행하려면 사용자가 먼저 권한을 부여해야 할 수 있습니다. bash
로 실행하는 데는 이 권한이 필요하지 않습니다.
Output~bash: ./basic_script.sh: Permission denied
bash filename
명령에는 파일의 읽기 권한만 필요합니다.
반면 ./파일 이름
명령은 파일을 실행 파일로 실행하며 실행 권한이 필요합니다.
스크립트를 실행하려면 권한을 업데이트해야 합니다.
- chmod +x basic_script.sh
이 명령은 chmod
를 적용하고 현재 사용자에게 x
(실행 가능) 권한을 부여합니다.
쉘 스크립트에서 변수 사용
스크립트는 사용자 정의 변수를 포함할 수 있습니다. 실제로 스크립트의 크기가 커짐에 따라 명확하게 정의되고 자체 설명이 포함된 변수가 있어야 합니다.
스크립트에 다음 줄을 추가합니다.
#!/bin/bash
# This is a comment
# defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS
GREETINGS
는 정의된 변수이며 나중에 $
(달러 기호 기호)를 사용하여 액세스합니다. 변수에 값이 할당되는 줄에는 공백이 없어야 합니다.
스크립트를 실행합니다.
- bash basic_script.sh
이것은 변수에 할당된 값을 출력합니다:
OutputHello! 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
에 대한 입력을 제공할 때까지 기다립니다. 그런 다음 NAME
및 GREETINGS
를 인쇄합니다.
OutputWhat 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
를 그 안에 넣습니다.
OutputWhat 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에서 명령줄용 셸 스크립트를 만들고 실행하는 방법을 배웠습니다.
스크립트의 이점을 누릴 수 있는 반복적이거나 시간이 많이 걸리는 자주 수행하는 작업을 고려하십시오.
명령줄에서 인수를 사용하여 학습을 계속합니다.