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

Linux에서 효과적인 Bash 스크립트를 작성하기 위한 10가지 유용한 팁

쉘 스크립팅은 Linux에서 배우고 수행할 수 있는 가장 쉬운 프로그래밍 형식입니다. 더군다나 작업 자동화, 새로운 간단한 유틸리티/도구 개발을 위한 시스템 관리에 필요한 기술입니다.

이 기사에서 우리는 효과적이고 신뢰할 수 있는 bash 스크립트를 작성하기 위한 10가지 유용하고 실용적인 팁을 공유할 것이며 여기에는 다음이 포함됩니다.

1. 스크립트에서 항상 주석 사용

이것은 쉘 스크립팅뿐만 아니라 다른 모든 종류의 프로그래밍에 적용되는 권장 방법입니다. 스크립트에 주석을 작성하면 스크립트를 통해 스크립트의 다른 부분이 하는 일을 이해하는 데 도움이 됩니다.

우선 주석은 #를 사용하여 정의됩니다. 서명.

#TecMint is the best site for all kind of Linux articles

2. 실패 시 스크립트 종료

때때로 bash는 특정 명령이 실패하더라도 스크립트를 계속 실행하여 나머지 스크립트에 영향을 미칠 수 있습니다(결국 논리적 오류가 발생할 수 있음). 명령이 실패할 때 스크립트를 종료하려면 아래 줄을 사용하십시오.

#let script exit if a command fails
set -o errexit 
OR
set -e

3. Bash가 선언되지 않은 변수를 사용할 때 스크립트 종료

Bash는 논리적 오류를 일으킬 수 있는 선언되지 않은 스크립트를 사용하려고 할 수도 있습니다. 따라서 다음 줄을 사용하여 bash가 선언되지 않은 변수를 사용하려고 할 때 스크립트를 종료하도록 지시합니다.

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. 큰따옴표를 사용하여 변수 참조

참조하는 동안 큰따옴표를 사용(변수 값 사용)하면 단어 분할(공백 관련) 및 불필요한 globbing(와일드카드 인식 및 확장)을 방지하는 데 도움이 됩니다.

아래 예시를 확인하세요:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

파일을 저장하고 종료한 후 다음과 같이 실행합니다.

$ ./names.sh
Linux에서 효과적인 Bash 스크립트를 작성하기 위한 10가지 유용한 팁

5. 스크립트에서 함수 사용

아주 작은 스크립트(몇 줄의 코드 포함)를 제외하고는 항상 함수를 사용하여 코드를 모듈화하고 스크립트를 더 읽기 쉽고 재사용할 수 있도록 만드십시오.

함수 작성 구문은 다음과 같습니다.

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

한 줄 코드의 경우 다음과 같이 각 명령 뒤에 종료 문자를 사용합니다.

check_root(){ command1; command2; }

6. 문자열 비교를 위해 ==대신 =사용

== =의 동의어입니다. , 따라서 단일 = 만 사용하십시오. 문자열 비교의 경우, 예:

value1=”tecmint.com”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. 대체에 기존 '명령' 대신 $(명령) 사용

명령 대체는 명령을 출력으로 바꿉니다. $(command) 사용 역따옴표 대신 `command` 명령 대체용입니다.

이것은 shellcheck 도구에서도 권장됩니다(셸 스크립트에 대한 경고 및 제안 표시). 예:

user=`echo “$UID”`
user=$(echo “$UID”)

8. 읽기 전용을 사용하여 정적 변수 선언

정적 변수는 변경되지 않습니다. 스크립트에 정의되면 값을 변경할 수 없습니다.

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. ENVIRONMENT 변수에는 대문자 이름을 사용하고 사용자 정의 변수에는 소문자 이름 사용

모든 bash 환경 변수의 이름은 대문자로 지정되므로 변수 이름 충돌을 피하기 위해 소문자를 사용하여 사용자 정의 변수의 이름을 지정하십시오.

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. 긴 스크립트에 대해 항상 디버깅 수행

수천 줄의 코드로 bash 스크립트를 작성하는 경우 오류를 찾는 것이 악몽이 될 수 있습니다. 스크립트를 실행하기 전에 쉽게 수정하려면 몇 가지 디버깅을 수행하십시오. 아래 제공된 가이드를 읽고 이 팁을 마스터하세요.

  1. Linux에서 셸 스크립트 디버깅 모드를 활성화하는 방법
  2. 셸 스크립트에서 구문 검사 디버깅 모드를 수행하는 방법
  3. 셸 추적을 사용하여 셸 스크립트에서 명령 실행을 추적하는 방법

그게 다야! 공유할 다른 최고의 bash 스크립팅 방법이 있습니까? 그렇다면 아래의 의견 양식을 사용하십시오.