Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

쉘 스크립팅은 Linux에서 프로세스 자동화의 중요한 부분입니다. 스크립팅을 사용하면 파일에 일련의 명령을 작성한 다음 실행할 수 있습니다.

이렇게 하면 특정 명령을 반복해서 작성할 필요가 없기 때문에 시간이 절약됩니다. 일일 작업을 효율적으로 수행하고 자동 실행을 예약할 수도 있습니다.

새 세션을 시작할 때 특정 메시지를 표시하거나 특정 환경 변수를 설정하는 것과 같이 시작 시 실행할 특정 스크립트를 설정할 수도 있습니다.

스크립팅의 응용 프로그램과 용도는 다양하므로 자세히 살펴보겠습니다.

이 기사에서 배우게 될 내용:

  1. bash 셸이란 무엇입니까?
  2. bash 스크립트란 무엇이며 어떻게 식별합니까?
  3. 첫 번째 bash 스크립트를 만들고 실행하는 방법
  4. 셸 스크립팅의 기본 구문입니다.
  5. 시스템의 예약된 스크립트를 보는 방법.
  6. 크론 작업을 통해 예약하여 스크립트를 자동화하는 방법

가장 좋은 학습 방법은 연습하는 것입니다. Replit을 사용하여 따라하시기를 적극 권장합니다. 몇 분 안에 실행 중인 Linux 셸에 액세스할 수 있습니다.

Bash 셸 소개

Linux 명령줄은 쉘이라는 프로그램에 의해 제공됩니다. 수년에 걸쳐 셸 프로그램은 다양한 옵션을 수용하도록 발전했습니다.

다른 사용자가 다른 쉘을 사용하도록 구성할 수 있습니다. 그러나 대부분의 사용자는 현재 기본 셸을 사용하는 것을 선호합니다. 많은 Linux 배포판의 기본 셸은 GNU Bourne-Again Shell(bash)입니다. Bash는 Bourne 쉘(sh ).

쉘을 처음 실행할 때 .bashrc에 있는 시작 스크립트를 사용합니다. 또는 .bash_profile 쉘의 동작을 사용자 정의할 수 있는 파일입니다.

쉘이 대화식으로 사용되면 $가 표시됩니다. 사용자의 명령을 기다리고 있을 때. 이것을 쉘 프롬프트라고 합니다.

[username@host ~]$

셸이 루트로 실행 중인 경우 프롬프트가 #로 변경됩니다. . 수퍼유저 셸 프롬프트는 다음과 같습니다.

[root@host ~]#

Bash는 GUI로 효율적으로 수행하기 어려운 특정 작업을 단순화할 수 있으므로 매우 강력합니다. 대부분의 서버에는 GUI가 없으며 명령줄 인터페이스(CLI)의 기능을 사용하는 방법을 배우는 것이 가장 좋습니다.

Bash 스크립트란 무엇입니까?

bash 스크립트는 파일에 작성된 일련의 명령입니다. 이것들은 bash 프로그램에 의해 읽고 실행됩니다. 프로그램은 한 줄씩 실행됩니다.

예를 들어 명령줄을 사용하여 특정 경로로 이동하고 폴더를 만들고 그 안에 프로세스를 생성할 수 있습니다.

bash 스크립트에 명령을 저장하고 실행하여 동일한 단계 순서를 수행할 수 있습니다. 스크립트는 여러 번 실행할 수 있습니다.

Bash 스크립트는 어떻게 식별합니까?

파일 확장자 .sh .

명명 규칙에 따라 bash 스크립트는 .sh로 끝납니다. . 그러나 bash 스크립트는 sh 없이 완벽하게 실행할 수 있습니다. 확대.

스크립트는 bash 쾅으로 시작합니다.

스크립트는 shebang으로도 식별됩니다. . Shebang은 bash #의 조합입니다. 그리고 bang ! bash 쉘 경로를 따랐습니다. 이것은 스크립트의 첫 번째 줄입니다. Shebang은 쉘에 bash 쉘을 통해 실행하도록 지시합니다. Shebang은 단순히 bash 인터프리터의 절대 경로입니다.

다음은 shebang 구문의 예입니다.

#! /bin/bash

bash 프로그램의 경로는 다를 수 있습니다. 나중에 식별하는 방법을 알아보겠습니다.

실행 권한

스크립트에는 스크립트를 실행하는 사용자에 대한 실행 권한이 있습니다.

실행 권한은 x로 표시됩니다. . 아래 예에서 내 사용자는 rwx test_script.sh 파일에 대한 (읽기, 쓰기, 실행) 권한

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

파일 색상

실행 가능한 스크립트는 나머지 파일 및 폴더와 다른 색상으로 나타납니다.

제 경우에는 실행 권한이 있는 스크립트가 녹색으로 표시됩니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

첫 번째 Bash 스크립트를 만드는 방법

bash에서 Hello World를 출력하는 간단한 스크립트를 만들어 보겠습니다. .

hello_world.sh라는 파일 생성

touch hello_world.sh

bash 셸 경로 찾기

which bash
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

제 경우 경로는 /usr/bin/bash 입니다. 그리고 나는 이것을 shebang에 포함시킬 것입니다.

명령어를 작성하세요.

우리는 echo할 것입니다. "hello world"를 콘솔로 보냅니다.

스크립트는 다음과 같습니다.

#! usr/bin/bash
echo "Hello World"

hello_world.sh 파일 편집 원하는 텍스트 편집기를 사용하여 위의 줄을 추가하십시오.

사용자에게 실행 권한을 제공합니다.

아래 명령을 사용하여 파일 권한을 수정하고 스크립트 실행을 허용하십시오.

chmod u+x hello_world.sh

chmod 특정 사용자에 대한 파일의 기존 권한을 수정합니다. +x를 추가합니다. 사용자 u에게 .

스크립트를 실행합니다.

다음과 같은 방법으로 스크립트를 실행할 수 있습니다.

./hello_world.sh

bash hello_world.sh .

출력은 다음과 같습니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

Bash 스크립팅의 기본 구문

다른 프로그래밍 언어와 마찬가지로 bash 스크립팅은 컴퓨터가 이해할 수 있는 프로그램을 만드는 일련의 규칙을 따릅니다. 이 섹션에서는 bash 스크립팅의 구문을 연구합니다.

변수 정의 방법

variable_name=value 구문을 사용하여 변수를 정의할 수 있습니다. . 변수 값을 얻으려면 $를 추가하십시오. 변수 앞에.

#!/bin/bash
# A simple variable example
greeting=Hello
name=Tux
echo $greeting $name
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

Tux는 Linux 마스코트인 펭귄의 이름이기도 합니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

산술 표현식

다음은 수학 계산을 위해 bash에서 지원하는 연산자입니다.

연산자 사용
+ 추가
- 빼기
* 곱하기
/ 디비전
** 지수화
% 계수

몇 가지 예를 실행해 보겠습니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

아래 구문을 사용하여 숫자 표현식을 계산하고 변수에 저장할 수도 있습니다.

var=$((expression))

예를 들어 보겠습니다.

#!/bin/bash

var=$((3+9))
echo $var
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

위의 방법을 사용하여 분수가 올바르게 계산되지 않고 잘립니다.

소수 계산의 경우 , bc를 사용할 수 있습니다. 특정 소수점 이하 자릿수까지 출력을 가져오는 명령입니다. bc (Bash Calculator)는 특정 소수점 이하 자릿수까지 계산을 지원하는 명령줄 계산기입니다.

echo "scale=2;22/7" | bc

scale 출력에 필요한 소수 자릿수를 정의합니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

사용자 입력을 읽는 방법

때로는 사용자 입력을 수집하고 관련 작업을 수행해야 합니다.

bash에서는 read를 사용하여 사용자 입력을 받을 수 있습니다. 명령.

read variable_name

사용자에게 사용자 정의 메시지를 표시하려면 -p를 사용하십시오. 플래그.

read -p "Enter your age" variable_name

예:

#!/bin/bash

echo "Enter a numner"
read a

echo "Enter a numner"
read b

var=$((a+b))
echo $var
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

숫자 비교 논리 연산자

비교는 명령문이 true로 평가되는지 확인하는 데 사용됩니다. 또는 false . 아래 표시된 연산자를 사용하여 두 명령문을 비교할 수 있습니다.

작업 구문 설명
평등 num1 -eq num2 num1은 num2와 같습니다.
다음보다 큼 num1 -ge num2 num1이 num2보다 큼
보다 큼 숫자1 -gt 숫자2 num1이 num2보다 큽니다.
보다 작음 num1 -le num2 num1이 num2보다 작음
미만 num1 -lt num2 num1이 num2보다 작음
같지 않음 num1 -ne num2 num1이 num2와 같지 않음

구문 :

if [ conditions ]
    then
         commands
fi

:

두 숫자를 비교하고 관계를 찾아보겠습니다.

read x
read y

if [ $x -gt $y ]
then
echo X is greater than Y
elif [ $x -lt $y ]
then
echo X is less than Y
elif [ $x -eq $y ]
then
echo X is equal to Y
fi

출력:

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

조건문(의사결정)

조건은 부울 표현식(true 또는 false ). 조건을 확인하려면 if를 사용할 수 있습니다. , if-else , if-elif-else 및 중첩 조건.

조건문의 구조는 다음과 같습니다.

  • if...then...fi 진술
  • if...then...else...fi 진술
  • if..elif..else..fi
  • if..then..else..if..then..fi..fi.. (중첩 조건)

구문 :

if [[ condition ]]
then
	statement
elif [[ condition ]]; then
	statement 
else
	do this by default
fi

의미 있는 비교를 생성하기 위해 AND -a를 사용할 수 있습니다. 및 OR -o 뿐만 아니라.

아래 문장은 다음과 같이 번역됩니다:If a 40보다 크고 b 6보다 작습니다.

if [ $a -gt 40 -a $b -lt 6 ]

:삼각형의 변의 길이를 읽어서 삼각형의 종류를 알아봅시다.

read a
read b
read c

if [ $a == $b -a $b == $c -a $a == $c ]
then
echo EQUILATERAL

elif [ $a == $b -o $b == $c -o $a == $c ]
then 
echo ISOSCELES
else
echo SCALENE

fi

출력 :

테스트 사례 #1

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

테스트 사례 #2

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

테스트 사례 #3

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

루핑 및 건너뛰기

For 루프를 사용하면 명령문을 특정 횟수만큼 실행할 수 있습니다.

숫자로 반복:

아래 예에서 루프는 5번 반복됩니다.

#!/bin/bash

for i in {1..5}
do
    echo $i
done
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

문자열을 사용한 루프:

문자열을 순환할 수도 있습니다.

#!/bin/bash

for X in cyan magenta yellow  
do
	echo $X
done
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

중 루프

while 루프는 조건을 확인하고 조건이 true로 유지될 때까지 루프합니다. . 루프 실행을 제어하기 위해 카운터를 증가시키는 카운터 문을 제공해야 합니다.

아래 예에서 (( i += 1 )) i 값을 증가시키는 카운터 문입니다. .

예:

#!/bin/bash
i=1
while [[ $i -le 10 ]] ; do
   echo "$i"
  (( i += 1 ))
done
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

파일 읽기

sample_file.txt 파일이 있다고 가정합니다. 아래와 같이:

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

파일을 한 줄씩 읽고 화면에 출력할 수 있습니다.

#!/bin/bash

LINE=1

while read -r CURRENT_LINE
	do
		echo "$LINE: $CURRENT_LINE"
    ((LINE++))
done < "sample_file.txt"

출력:

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

백틱으로 명령을 실행하는 방법

스크립트에 복잡한 명령의 출력을 포함해야 하는 경우 백틱 안에 명령문을 작성할 수 있습니다.

구문:

var=` commands `

:tmpfs를 사용하여 마운트 지점 목록의 출력을 얻으려고 한다고 가정합니다. 그들의 이름으로. 우리는 다음과 같은 문장을 만들 수 있습니다:df -h | grep tmpfs .

bash 스크립트에 포함하기 위해 백틱으로 묶을 수 있습니다.

#!/bin/bash

var=`df -h | grep tmpfs`
echo $var

출력:

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

명령줄에서 스크립트에 대한 인수를 가져오는 방법

실행 시 스크립트에 인수를 줄 수 있습니다.

$@ 1부터 시작하는 매개변수의 위치를 ​​나타냅니다.

#!/bin/bash

for x in $@
do
    echo "Entered arg is $x"
done

다음과 같이 실행하십시오:

./script arg1 arg2

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

크론 작업을 통해 예약하여 스크립트를 자동화하는 방법

Cron은 유닉스 계열 시스템에 있는 작업 스케줄링 유틸리티입니다. 매일, 매주, 매월 또는 특정 시간에 실행되도록 작업을 예약할 수 있습니다. Linux의 자동화는 크론 작업에 크게 의존합니다.

다음은 cron을 예약하는 구문입니다.

# Cron job example
* * * * * sh /path/to/script.sh

여기, * 표현은 각각 분(들) 시(들) 일(들) 월(들) 요일(들)을 나타냅니다.

다음은 cron 작업을 예약하는 몇 가지 예입니다.

일정 예정 금액
5 0 * 8 * 8월 00:05에.
5 4 * * 6 일요일 04:05에
0 22 * ​​* 1-5 월요일부터 금요일까지 매주 22:00에.

이 블로그 게시물에서 cron에 대해 자세히 알아볼 수 있습니다.

시스템의 기존 스크립트를 확인하는 방법

크론탭 사용

crontab -l 특정 사용자에 대해 이미 예약된 스크립트를 나열합니다.

초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

찾기 명령 사용

find 명령은 특정 패턴을 기반으로 파일을 찾는 데 도움이 됩니다. 대부분의 스크립트가 .sh로 끝나기 때문에 , 다음과 같이 찾기 스크립트를 사용할 수 있습니다.

find . -type f -name "*.sh"

어디,

  • . 현재 디렉토리를 나타냅니다. 그에 따라 경로를 변경할 수 있습니다.
  • -type f 찾고 있는 파일 형식이 텍스트 기반 파일임을 나타냅니다.
  • *.sh .sh로 끝나는 모든 파일과 일치하도록 지시 .
초보자를 위한 쉘 스크립팅 – Linux에서 Bash 스크립트를 작성하는 방법

find 명령어에 대해 자세히 알고 싶으시면 제 다른 게시물을 확인하세요.

마무리

이 튜토리얼에서 우리는 쉘 스크립팅의 기초를 배웠습니다. 의미 있는 프로그램을 작성하는 데 도움이 되는 예제와 구문을 살펴보았습니다.

이 튜토리얼에서 배운 것 중 가장 좋아하는 것은 무엇입니까? 트위터로 알려주세요!

여기에서 내 다른 게시물을 읽을 수 있습니다.

macrovector가 만든 작업 벡터 - www.freepik.com