[리눅스] 쉘 스크립트 프로그래밍

Donghyun Kim·2022년 5월 23일
0

✔ 쉘 스크립트 기본

#!/bin/bash

#! 은 스크립트를 실행할 쉘을 지정하는 선언문을 의미하는 명령어
따라서 #!/bin/bash 은 해당 파일을 bash 쉘로 실행시키겠다는 의미
default shell을 bash 쉘로 지정하면 작성을 생략하여도 동일하게 동작

*.sh 파일

쉘 스크립트 파일의 확장자는 .sh이다. .sh 파일을 생성 후 실행 권한까지 추가해주어야한다.

쉘 환경변수

쉘은 여러 환경 변수 값을 가지고 있고, echo $환경변수이름 명령을 통해 설정된 환경 변수 값을 확인할 수 있다. export 환경변수=값 명령을 통해 환경 변수를 변경하거나 추가할 수 있다. printenv 명령으로 환경 변수와 값을 확인할 수 있지만, 일부 환경 변수는 나타나지 않을 수 있다.

> echo $LANG
ko_KR.UTF-8
> export $LANG=en_US.UTF-8

> printenv

✔ 주석

한 줄 주석

# 한 줄 주석

다중 줄 주석

: '
주석
TEST
'

or

: << "END"
주석
TEST
END

✔ 변수

  • 쉘 스크립트에서는 변수를 따로 선언하지 않고, 값이 할당되면
    자동으로 생성 (동적할당)
  • 대소문자를 구분하지만 쉘 스크립트에서는 변수명을 전부 대문자로 작성하는 것이 컨벤션

지역변수

#!/bin/bash

name = donghyun
name = "donghyun KIM"

echo $VAR

전역변수

export externalVAR="전역변수"

✔ 연산

expr 명령어를 사용해 연산을 수행한다.

# 기본 연산
expr 1 + 2

# 변수에 연산 값 할당 (띄어쓰기, 백틱)
result=`expr 1 + 2`

# 결과 값 출력
echo $result
echo $(expr 1 + 2)

✔ 종료/리턴

exit [리턴값]

~
~
exit 0

아무 값도 리턴하지 않을 시 리눅스에선 관행적으로 리턴 값을 0을 기입한다.
1 ~ 255 까지는 보통 오류코드로 나타낸다.

✔ 파라미터

$0, $1, $2 와 같은 달러 형태로 작성하며
뒤에 오는 숫자는 인자의 n번째 수

  • $0 : 해당 실행 파일명
  • $n : n번째 인자

✔ 조건문

! 공백에 유의하여야한다. 대괄호 띄고 조건

if문

if [ 조건 ] ; then
   code
fi

or

if test 조건 ; then
fi

if else문

if [ 조건 ] ; then
	조건 == true
else
	조건 == false
fi

case문

case 변수 in
	case1)
    	code
        ;;
    case2)
    	code
        ;;
    *)
    	code
        ;;
esac #별 뜻은 없고 단순 case를 반대로 써서 끝을 나타냄

✔ 반복문

for..in문

값의 개수만큼 반복 실행

for i in 1 2 3 4 5
do
	echo $i
done

or
for i in {1..5}
do
	echo $i
done

while문

조건이 참인 동안 계속 반복

while [ 조건식 ]; do
	code
done

until문

until문은 while문과 반대로 조건이 거짓인 동안 계속 반복

until [ 조건 ]; do
	code
done

✔ 사용자 정의 함수

함수명() {...} 형태

func() {
	# 매개변수 사용은 $1, $2, $3 ...
	code in function
}
profile
"Hello World"

0개의 댓글