쉘 스크립팅은 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
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 스크립트를 작성하는 경우 오류를 찾는 것이 악몽이 될 수 있습니다. 스크립트를 실행하기 전에 쉽게 수정하려면 몇 가지 디버깅을 수행하십시오. 아래 제공된 가이드를 읽고 이 팁을 마스터하세요.
- Linux에서 셸 스크립트 디버깅 모드를 활성화하는 방법
- 셸 스크립트에서 구문 검사 디버깅 모드를 수행하는 방법
- 셸 추적을 사용하여 셸 스크립트에서 명령 실행을 추적하는 방법
그게 다야! 공유할 다른 최고의 bash 스크립팅 방법이 있습니까? 그렇다면 아래의 의견 양식을 사용하십시오.