Bash 스크립트를 위한 나의 코딩 규칙
Source: Dev.to

이 컬렉션에는 이제 매개변수가 있거나 없는 간단하고 복잡한 함수들의 예제가 포함되어 있어 Bash 스크립트 코딩에 대한 포괄적인 참고 자료를 제공합니다. 기본부터 시작하여 덜 사용되는 솔루션까지 진행됩니다.
1. Shebang
각 스크립트의 첫 줄에 shebang 라인을 추가하여 사용할 인터프리터를 지정합니다:
#!/bin/bash
2. 권한
스크립트에 실행 권한이 있는지 확인하십시오:
chmod +x script_name.sh
3. 주석
코드를 설명하기 위해 주석을 사용하세요:
# This is a comment
4. 변수
변수 선언
등호 주변에 공백 없이 변수를 선언하십시오:
name="value"
기본값 – 변수가 정의되지 않은 경우 기본값을 설정하려면 ${variable:-default_value}를 사용하십시오:
name=${name:-"default_value"}
변수 처리
대문자 변환
uppercase=${name^^}
소문자 변환
lowercase=${name,,}
첫 글자 대문자 (Capitalization)
capitalize=${name^}
인라인 문자 교체 – 문자열의 모든 발생을 교체합니다:
new_name=${name//old/new_value}
5. 입력 매개변수
Bash 스크립트는 입력 매개변수를 받을 수 있으며, 이를 다양한 방식으로 처리할 수 있습니다:
| Symbol | Description |
|---|---|
$1, $2, … | 위치 매개변수 ($1은 첫 번째 인수, $2는 두 번째 인수 등) |
$# | 전달된 매개변수 개수 |
$@ | 모든 매개변수를 리스트 형태로 (루프에서 유용) |
$* | 모든 매개변수를 하나의 문자열로 |
$? | 마지막 실행된 명령의 반환 코드 |
예시
# $1, $2, …
echo "First parameter: $1"
# $#
echo "Number of parameters: $#"
# $@
for param in "$@"; do
echo "Parameter: $param"
done
# $*
echo "All parameters: $*"
# $?
echo "Return code: $?"
6. 조건
조건 구조에는 if … then … else … fi를 사용합니다:
if [ condition ]; then
# commands
else
# other commands
fi
7. case (Switch‑Case) 구조
case를 사용하면 여러 조건을 보다 가독성 있게 처리할 수 있습니다. 가능한 값들을 공백으로 구분합니다:
case $variable in
value1 | value2 | value3)
# commands for value1, value2, or value3
;;
value4)
# commands for value4
;;
*)
# default commands
;;
esac
8. 함수
매개변수 없는 간단한 함수
my_simple_function() {
echo "This is a simple function."
}
# Call the function
my_simple_function
매개변수가 있는 함수
my_function_with_parameters() {
param1=$1
param2=$2
echo "Parameter 1: $param1"
echo "Parameter 2: $param2"
}
# Call the function with parameters
my_function_with_parameters "value1" "value2"
복합 함수 (처리 및 다중 매개변수)
my_complex_function() {
name=$1
age=$2
if [ "$age" -lt 18 ]; then
echo "$name is a minor."
else
echo "$name is an adult."
fi
}
# Call the complex function
my_complex_function "Alice" 20
my_complex_function "Bob" 15
9. 변수 테스트
테스트용 비교 연산자
문자열 비교
| Operator | 의미 |
|---|---|
== | 동일 |
!= | 다름 |
> | 사전식으로 더 큼 |
if [ "$string1" == "$string2" ]; then
echo "The strings are identical"
fi
숫자 비교
| Operator | 의미 |
|---|---|
-eq | 동일 |
-ne | 다름 |
-lt | 작음 |
-gt | 큼 |
-le | 작거나 같음 |
-ge | 크거나 같음 |
if [ "$number1" -lt "$number2" ]; then
echo "$number1 is less than $number2"
fi
10. 루프
반복하기 위해 for, while, 또는 until 루프를 사용하세요:
for i in {1..5}; do
echo "$i"
done
11. 오류 처리
오류를 $? 로 확인하고 set -e 를 사용하여 오류가 발생하면 스크립트를 중단합니다:
set -e
12. set 사용하기
정의되지 않은 변수를 오류로 처리하려면 set -u를 사용합니다:
set -u
13. 출력
echo를 사용하여 메시지나 결과를 표시합니다:
echo "Message"
14. trap 사용
시그널을 처리하고 종료하기 전에 정리 작업을 수행합니다:
trap 'cleanup_command' EXIT
15. Best Practices
- 모호한 변수 이름을 피하십시오.
- 설명적인 파일 이름을 사용하십시오.
- 스크립트를 프로덕션에서 실행하기 전에 안전한 환경에서 테스트하십시오.