본문 바로가기
한화시스템 Beyond SW Camp/기반기술

쉘 스크립트 문법

by taeh00n 2025. 3. 11.

쉘 스크립트

쉘 스크립트 실행

sh 명령어 사용

sh [파일 이름]

chmod 명령어 사용

chmod 755 [파일이름]  # 실행 권한 부여
./[파일이름]          # 실행

쉘 스크립트 파일에 실행 권한을 부여한 후 직접 실행


변수

변수명=값

환경변수

PATH : 실행 파일을 찾는 경로

PS1 : 터미널 프롬프트 모양

사용자 정의 변수

일반적으로 사용자가 프로그래밍할 때 사용하는 변수

변수명에 문자, 숫자, _ 을 사용할 수 있고 변수명의 첫 문자는 반드시 문자 또는 _

 

name="Alice"
echo $name   # 결과: Alice

 

특수 변수

쉘이 자동으로 제공하는 특별한 변수

echo $$   # 현재 쉘의 프로세스 ID 출력
sleep 10 &
echo $!   # 마지막으로 실행된 백그라운드 프로세스의 ID 출력
echo $?   # 마지막 명령어의 실행 결과 (0이면 성공)

위치 매개 변수

변수 의미
$0 실행된 쉘 스크립트 파일명
$1 첫 번째 인자
$2 두 번째 인자
$3 세 번째 인자
$@ 전달된 모든 인자 (배열처럼 사용 가능)
$# 전달된 인자의 개수

 

#!/bin/bash
echo "스크립트 이름: $0"
echo "첫 번째 인자: $1"
echo "두 번째 인자: $2"
echo "총 인자 개수: $#"

# 실행 방법
# ./myscript.sh apple banana
# 결과:
# 스크립트 이름: ./myscript.sh
# 첫 번째 인자: apple
# 두 번째 인자: banana
# 총 인자 개수: 2

변수 사용

my_name="Alice"
echo "이름: $my_name"   # 이름: Alice

주의 : = 좌우에 공백을 넣으면 안된다.


조건문

기본 조건문

if [ 조건 ]
then
  수행 명령어
fi

조건이 참이면 then 뒤의 명령어 실행

거짓이면 실행안됨

조건 - 문자열 검사

 

  • str1 = str2 : 두 문자열이 같으면 true, 다르면 false
  • str1 != str2 : 두 문자열이 다르면 true, 같으면 false
  • str : 문자열이 비어있지 않으면 true, 비어있으면 false

조건 - 산술 비교

 

  • -eq : 같으면 true
  • -ne : 다르면 true
  • -gt : 크면 true
  • -ge : 크거나 같으면 true
  • -lt : 작으면 true
  • -le : 작거나 같으면 true

조건 - 파일 검사

 

  • -d file : 파일이 디렉토리이면 true
  • -f file : 파일이 일반 파일이면 true
  • -l file : 파일이 링크 파일이면 true
  • -r file : 파일이 읽기 가능하면 true
  • -w file : 파일이 쓰기 가능하면 true
  • -x file : 파일이 실행 가능하면 true
  • -u file : SetUID 설정된 파일이면 true
  • -g file : SetGID 설정된 파일이면 true
  • -k file : Sticky Bit 설정된 파일이면 true

조건 - 논리 조건 연산

 

  • ! : NOT 연산
  • -a : AND 연산
  • -o : OR 연산

나머지 조건문

if [ 조건 ]
then
  수행 명령어1
else
  수행 명령어2
fi

추가 조건문

if [ 조건1 ]
then
  수행 명령어1
elif [ 조건2 ]
then
  수행 명령어2
else
  수행 명령어3		
fi

case문

case "$color" in
'red')
	echo "Color is Red"
	;;
'blue' | 'sky')
	echo "Color is blue"
	;;
'black')
	echo "Color is Black"
	;;
*)
	echo "NONE"
	;;
esac

사용자 입력

read 변수명

반복문 - for

for 변수 in [값1] [값2] [값3] ...
do
  반복할 명령어
done

반복문 - while

while [ 조건 ]
do
  반복할 명령어
done

 

내부 명령어

  • exit : 스크립트를 종료한다.
  • continue : 반복문에서 진행 중인 작업을 중단하고, 반복문 처음으로 돌아간다.
  • break : 반복문을 종료하고 done 이후의 명령어를 실행한다.
  • return : 함수에서 결과 값을 반환하고 종료한다.
  • read : 사용자로부터 입력을 받아 변수에 저장한다.
  • expr : 수식을 계산해서 결과를 출력한다.