셸 스크립트

IT위키
클라우더 (토론 | 기여)님의 2022년 10월 25일 (화) 22:37 판 (새 문서: Shell Script 셸 명령어를 기초로 만드는 간단한 스크립트 프로그램 * 쉘 스크립트라고 부르는 경우가 많은데 shell의 올바른 표기법은 '셸'이므로 '''<nowiki/>'셸 스크립트'가 맞는 말이다.''' * 이론적으로 모든 셸로 셸 스크립트를 만들 수 있지만 가장 많이하는 bash를 기준으로 설명한다. == 최상단 필수 구문 == 셸 스크립트 최상단엔 아래와 같은 셸 지정 구문이 들어가...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Shell Script

셸 명령어를 기초로 만드는 간단한 스크립트 프로그램

  • 쉘 스크립트라고 부르는 경우가 많은데 shell의 올바른 표기법은 '셸'이므로 '셸 스크립트'가 맞는 말이다.
  • 이론적으로 모든 셸로 셸 스크립트를 만들 수 있지만 가장 많이하는 bash를 기준으로 설명한다.

최상단 필수 구문

셸 스크립트 최상단엔 아래와 같은 셸 지정 구문이 들어가있어야 한다. 다른 셸을 사용하는 경우 다른 셸을 명시할 수도 있다.

#!/bin/bash
  • #! 구분은 실무적으로 shebang(시뱅 또는 쉬뱅)이라고 부른다. #의 hash, !의 bang(영미권 표현)을 합친 말이다.

기본 문법

주석

주석은 # 을 사용한다. #!와 같이 #뒤에 붙여서 사용하는 명령들이 있으므로 띄어쓴다.

#!/bin/sh

# 여기 있는 내용은 실행되지 않는다.
# echo "Hi, World!"

echo "Hello, World!"

출력

출력은 echo, printf 를 사용할 수 있다. printf는 C언어의 printf와 같이 포맷팅을 지원하는 출력이다.

#!/bin/bash

echo "hello, world"
printf "hello, world"
printf "%s, %s" hello, world

입력

read 명령을 통해 입력을 받을 수 있다.

#!/bin/sh

read NAME
echo "Hello, $NAME!"

실행결과

$ ./test.sh

ITWiki

Hello, ITWiki!

변수

  • 변수의 이름은 영문자, 숫자, 언더바만 사용 가능하다.
  • 변수에 값을 전달할 때는 = 의 앞뒤 공백 없이 작성한다. 문자열인 경우 "(쌍따옴표)로 감싼다.
    • VAR = aaa (X)
    • VAR="aaa" (O)
  • 변수에 액세스할 때 변수명의 앞에 $를 넣는다. 중괄호로 감싸서 사용하는 표현도 흔히 사용된다.
    • $VAR, ${VAR} 모두 사용 가능
  • 변수의 값이 덮어 쓰기되는 것을 방지하기 위해서는 readonly를 사용한다.
#!/bin/bash

h="hello"
w="world"
echo "${h}, ${w}"

미리 정의된 특수변수들이 있어서 바로 사용 가능하다.

특수 변수

변수 기능
$0 스크립트명
$1 ~ $9 인수, 첫 번째의 인수는 $1, 2번째 인수는 $2로 액세스
$# 스크립트에 전달된 인수의 수
$* 모든 인수를 모아 하나로 처리
$@ 모든 인수를 각각 처리
$? 직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패)
$$ 이 쉘 스크립트의 프로세스 ID
$! 마지막으로 실행한 백그라운드 프로세스 ID

참고 문헌