제가 공부한 내용을 정리하는 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
해당 포스팅은 Bash Shell 정리입니다.
서론
Bash는 유닉스 및 리눅스 환경에서 사용되는 가장 널리 알려진 셸로, 강력한 스크립팅 기능을 제공하여 시스템 관리와 반복 작업 자동화에 매우 유용합니다. Bash Shell 스크립팅은 단순한 명령어 실행을 넘어 변수, 조건문, 반복문, 함수 등을 활용하여 복잡한 작업을 효율적으로 처리할 수 있습니다. 이번 포스팅에서는 Bash Shell 프로그래밍을 초보자도 쉽게 이해하고 활용할 수 문법 정리를 하겠습니다!
본론
1. Bash 스크립트 기본 구조
쉘 스크립트는 첫줄에 어떤 쉘로 스크립트를 실행할지 정의하는 부분이 존재합니다.
Bash 스크립트는 #!/bin/bash라는 셰뱅(Shebang)으로 시작하며, 실행 권한을 부여한 후 실행됩니다.
#!/bin/bash
echo "Hello, World!"
- 쉘 종류
- sh: 초기 유닉스 쉘
- bash: sh와 대부분 호환되는 Bash Shell
- ksh: 콘 쉘이라고도 불리며 sh를 확장하여 만든 쉘
- csh: C언어 기반의 쉘
- 스크립트 실행
chmod +x script.sh
./script.sh
실행권한을 주어야 스크립트를 실행할 수 있습니다.
2. 변수와 데이터
변수는 프로그래밍 언어들과 같은 제약조건이 존재하며 값을 사용할 때에는 $로 시작하고 변수를 생성할 때에는 대입문자 앞뒤로 공백이 없어야 합니다.
- 변수 선언
variable="값"
- 변수호출
echo $variable # {}가 있으나 없으나 $만으로 변수의 값을 넣어줄 수 있으나, 문자열을 붙여서 쓸려면 ${} 를 사용해야 한다.
echo "this product's price is ${variable}"
- 읽기 전용 변수
readonly variable
- 사용자 입력 받기
read -p "Enter your name: " name
echo "Hello, $name!"
- 환경변수
쉘 스크립트에서 변수명 앞에 export를 붙여주면 환경변수로 설정되어 스크립트에서 사용 가능합니다.
관례로 환경변수는 모두 대문자를 작성해주셔야 합니다.
# network.sh 작성
#!/usr/bin/bash
echo ${ENDPOINT}
# 환경변수 선언
export ENDPOINT="localhost:8080"
3. 조건문
중괄호 대신 fi문으로 if문의 종료를 알리며 조건식이 들어가는 대괄호 [] 사이에 공백이 존재해야합니다.
- if문 기본 사용법
if [ 조건 ]; then
echo "조건이 참입니다."
else
echo "조건이 거짓입니다."
fi
- 숫자 비교 연산자
- -eq: 같음
- -ne: 같지 않음
- -lt: 작음
- -le: 작거나 같음
- -gt: 큼
- -ge: 크거나 같음
num=10
if [ $num -gt 5 ]; then
echo "$num은 5보다 큽니다."
fi
4. 반복문
- for문
for i in {1..5}; do
echo "숫자: $i"
done
- while문
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
done
5. 함수
- 함수 정의 및 호출
function greet {
echo "Hello, $1!"
}
greet "Bash"
- 매개변수
#!/bin/bash
echo "첫 번째 매개변수: $1"
echo "두 번째 매개변수: $2"
echo "모든 매개변수: $@"
echo "매개변수 개수: $#"
# 실행
./script.sh Hello World
# 출력
첫 번째 매개변수: Hello
두 번째 매개변수: World
모든 매개변수: Hello World
매개변수 개수: 2
특수 변수 | 설명 |
$0 | 실행된 스크립트의 이름 |
$# | 매개변수의 갯수 |
$@ | 모든 매개변수 |
$* | 모든 매개변수(하나의 문자열로) |
$$ | 현재 스크립트의 PID |
$? | 이전 명령어의 종료 상태(0: 성공) |
$! | 마지막으로 실행된 백그라운드 명령어의 PID |
6. 파일 처리
- 파일 존재 여부 확인
if [ -e filename ]; then
echo "파일이 존재합니다."
fi
- 파일 읽기 예제
while read line; do
echo $line
done < filename.txt
7. 기타 유용한 문법
- 명령어 실행 결과 저장
result=$(ls -l)
echo "$result"
- 에러 처리
command || echo "명령어 실패!"
결론
Bash Shell 프로그래밍은 간단한 문법으로 시스템을 제어하고 반복 작업을 자동화하는 데 강력한 도구가 됩니다. 이번 포스팅에서는 변수, 조건문, 반복문, 함수 등 핵심 문법을 정리했으며, 이를 기반으로 더 복잡한 스크립트를 작성할 수 있습니다. 꾸준한 연습과 다양한 예제 실습을 통해 Bash 스크립팅 실력을 쌓아 보세요😁