시스템 소프트웨어 | 쉘 스크립트

Faithful Dev·2025년 1월 28일

컴퓨터 공학

목록 보기
58/81

쉘 스크립트(Shell Script)는 UNIX/Linux 시스템에서 명령어를 실행하기 위해 작성된 스크립트 파일로, 명령어의 조합을 통해 특정 작업을 자동화하거나 반복적인 작업을 효율적으로 수행할 수 있게 한다. 쉘 스크립트는 쉘(Shell)이라고 불리는 명령어 해석기가 읽고 실행한다. 대표적인 쉘로는 bash(Bourne Again Shell), zsh(Z Shell), ksh(Korn Shell) 등이 있다.


기본 문법

스크립트 파일 구조

쉘 스크립트 파일은 .sh 확장자를 가지며, 첫 번째 줄에 해석기 경로를 명시하는 Shebang이 들어간다.

#!/bin/bash
# 또는
#!/bin/zsh

주석

쉘 스크립트에서 # 기호를 사용하여 주석을 작성한다. 주석은 코드에 대한 설명이나 메모를 남길 때 사용된다.

#!/bin/bash
# 이 코드는 "Hello, World!"를 출력합니다.
echo "Hello, World!"

변수

쉘 스크립트에서 변수를 선언하고 사용하려면, = 기호를 사용한다. 변수명과 값 사이에 공백을 두지 않는다.

변수 선언

#!/bin/bash
name="Alice"
age=25

변수 사용

변수를 사용할 때는 $ 기호를 사용한다.

echo "이름: $name"
echo "나이: $age"

명령어 실행

쉘 스크립트에서 시스템 명령어를 실행할 수 있다.

#!/bin/bash
echo "현재 디렉토리:"
pwd
echo "디렉토리 내용:"
ls -l

제어 구조

쉘 스크립트는 조건문과 반복문을 지원한다.

조건문

if-else
#!/bin/bash
num=10
if [ $num -gt 5 ]; then
	echo "$num은 5보다 큽니다."
else
	echo "$num은 5보다 작거나 같습니다."
fi
조건 연산자
  • -eq: 같음
  • -ne: 같지 않음
  • -lt: 작음
  • -le: 작거나 같음
  • -gt: 큼
  • -ge: 크거나 같음

반복문

for 루프
#!/bin/bash
for i in 1 2 3 4 5; do
	echo "숫자: $i"
done
while 루프
#!/bin/bash
count=1
while [ $count -le 5 ]; do
	echo "카운트: $count"
    count=$((count + 1))
done

함수

함수는 코드의 재사용성을 높이기 위해 사용된다.

#!/bin/bash
greet() {
	echo "안녕하세요, $1님!"
}

greet "Alice"
greet "Bob"

입출력

사용자 입력 받기

#!/bin/bash
echo "이름을 입력하세요:"
read name
echo "반갑습니다, $name님!"

리다이렉션

  • 출력 리다이렉션: > (파일로 출력)
  • 입력 리다이렉션: < (파일로 입력)
echo "Hello" > output.txt # output.txt 파일에 "Hello" 저장
cat < input.txt # input.txt 파일 내용 읽기

스페셜 변수

쉘 스크립트에서 제공하는 특별한 변수:

  • $0: 스크립트 파일 이름
  • $1, $2, ...: 스크립트 실행 시 전달된 인수
  • $#: 전달된 인수의 개수
  • $@: 전달된 모든 인수
  • $?: 마지막 명령어의 종료 상태 (0은 성공, 0이 아닌 값은 실패)
#!/bin/bash
echo "스크립트 이름: $0"
echo "첫 번째 인수: $1"
echo "총 인수 개수: $#"

스크립트 실행

쉘 스크립트를 실행하려면:

실행 권한 부여

chmod +x script.sh

실행

./script.sh

쉘 스크립트는 단순한 명령어 실행부터 복잡한 자동화까지 폭넓게 활용될 수 있다. 필요에 따라 더 고급 문법이나 도구를 추가적으로 학습해 나갈 수 있다.

profile
Turning Vision into Reality.

0개의 댓글