Loading AI tools
셸에서 실행되도록 작성된 스크립트 위키백과, 무료 백과사전
셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 한다. 셸 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.
셸 스크립트라는 말은 유닉스 셸을 위해 쓰인 스크립트를 말하는 반면, command.com(도스)과 cmd.exe (윈도우) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 이 글에는 두 개의 속성 모두를 논한다.
.sh라는 파일 확장자를 가진 파일이 특정 종류의 셸 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다.[1][2]
파일을 나열하는 명령어인 ls 버전을 만드는 예는 다음과 같다.
#!/bin/sh
LC_COLLATE=C ls -FCas "$@"
여기서 셔뱅은 어느 인터프리터가 스크립트의 나머지 부분을 실행할지를 가리킨다.
다른 예는 모든 파일과 디렉터리의 목록을 출력하는 바로가기로 사용할 수 있다.
#!/bin/sh
clear
ls -al
셸 스크립트를 사용하면 명령 줄 인터페이스에 수동으로 입력해야 하는 여러 명령을 자동으로 연속 실행시킬 수 있으며, 사용자가 각 단계의 시퀀스마다 일일이 기다릴 필요가 없다.
#!/bin/csh
echo compiling...
cc -c foo.c
cc -c bar.c
cc -c qux.c
cc -o myprog foo.o bar.o qux.o
echo done.
단순한 배치 잡들은 분리된 작업에 일반적이지만 반복, 테스트, 변수들은 사용자에게 훨씬 더 나은 유연성을 제공한다. JPEG 그림을 PNG로 변환하는 Bash(유닉스 셸의 하나) 스크립트는 다음과 같다.
#!/bin/bash
for jpg; do # use $jpg in place of each filename given, in turn
png="${jpg%.jpg}.png" # construct the PNG version of the filename by replacing .jpg with .png
echo converting "$jpg" ... # output status info to the user running the script
if convert "$jpg" jpg.to.png ; then # use the convert program (common in Linux) to create the PNG in a temp file
mv jpg.to.png "$png" # if it worked, rename the temporary PNG image to the correct name
else # ...otherwise complain and exit from the script
echo 'jpg2png: error: failed output saved in "jpg.to.png".' >&2
exit 1
fi # the end of the "if" test construct
done # the end of the "for" loop
echo all conversions successful # tell the user the good news
exit 0
셸 스크립트를 기록하는 것은 다른 프로그래밍 언어의 같은 코드로 쓰인 것보다 훨씬 더 빠른 경우가 많다. 다른 해석 언어에 비해, 셸 스크립트는 컴파일 단계가 없기 때문에 스크립트는 디버깅을 하는 동안 빠르게 실행할 수 있다.
셸 스크립트를 사용함으로써 몇 가지 중대한 단점이 존재한다.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.