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. 큰 따옴표를 사용하여 변수 참조
참조하는 동안 (변수 값 사용) 큰 따옴표를 사용하면 단어 분할 (공백 관련) 및 불필요한 글 로빙 (와일드 카드 인식 및 확장)을 방지하는 데 도움이됩니다.
아래 예를 확인하십시오.
#!/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

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\"
대신 & # 36 (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 스크립트를 작성하는 경우 오류를 찾는 것이 악몽이 될 수 있습니다. 스크립트를 실행하기 전에 쉽게 문제를 해결하려면 몇 가지 디버깅을 수행하십시오. 아래 제공된 가이드를 읽고이 팁을 숙지하십시오.
- How To Enable Shell Script Debugging Mode in Linux
- How to Perform Syntax Checking Debugging Mode in Shell Scripts
- How to Trace Execution of Commands in Shell Script with Shell Tracing
그게 다야! "공유 할 다른 최고의 bash 스크립팅 사례가 있습니까? 그렇다면 아래 의견 양식을 사용하십시오.