익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
셸 스크립트
편집하기
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
Shell Script 셸 명령어를 기초로 만드는 간단한 스크립트 프로그램 * 쉘 스크립트라고 부르는 경우가 많은데 shell의 올바른 표기법은 '셸'이므로 '''<nowiki/>'셸 스크립트'가 맞는 말이다.''' * 이론적으로 모든 셸로 셸 스크립트를 만들 수 있지만 가장 많이하는 bash를 기준으로 설명한다. == 최상단 필수 구문 == 셸 스크립트 최상단엔 아래와 같은 셸 지정 구문이 들어가있어야 한다. 다른 셸을 사용하는 경우 다른 셸을 명시할 수도 있다.<syntaxhighlight lang="bash"> #!/bin/bash </syntaxhighlight> * #! 구분은 실무적으로 shebang(시뱅 또는 쉬뱅)이라고 부른다. #의 hash, !의 bang(영미권 표현)을 합친 말이다. == 기본 문법 == === 주석 === 주석은 # 을 사용한다. #!와 같이 #뒤에 붙여서 사용하는 명령들이 있으므로 띄어쓴다. <syntaxhighlight lang="bash"> #!/bin/sh # 여기 있는 내용은 실행되지 않는다. # echo "Hi, World!" echo "Hello, World!" </syntaxhighlight> === 출력 === 출력은 echo, printf 를 사용할 수 있다. printf는 C언어의 printf와 같이 포맷팅을 지원하는 출력이다.<syntaxhighlight lang="bash"> #!/bin/bash echo "hello, world" printf "hello, world" printf "%s, %s" hello, world </syntaxhighlight> === 입력 === read 명령을 통해 입력을 받을 수 있다.<syntaxhighlight lang="bash"> #!/bin/sh read NAME echo "Hello, $NAME!" </syntaxhighlight>'''실행결과'''<blockquote>$ ./test.sh ITWiki Hello, ITWiki!</blockquote> === 변수 === * 변수의 이름은 영문자, 숫자, 언더바만 사용 가능하다. * 변수에 값을 전달할 때는 = 의 앞뒤 공백 없이 작성한다. 문자열인 경우 "(쌍따옴표)로 감싼다. ** VAR = aaa (X) ** VAR="aaa" (O) * 변수에 액세스할 때 변수명의 앞에 $를 넣는다. 중괄호로 감싸서 사용하는 표현도 흔히 사용된다. ** $VAR, ${VAR} 모두 사용 가능 * 변수의 값이 덮어 쓰기되는 것을 방지하기 위해서는 readonly를 사용한다. <syntaxhighlight lang="bash"> #!/bin/bash h="hello" w="world" echo "${h}, ${w}" </syntaxhighlight>미리 정의된 특수변수들이 있어서 바로 사용 가능하다. '''특수 변수''' {| class="wikitable" !'''변수''' !'''기능''' |- |'''$0''' |스크립트명 |- |'''$1 ~ $9''' |인수, 첫 번째의 인수는 $1, 2번째 인수는 $2로 액세스 |- |'''$#''' |스크립트에 전달된 인수의 수 |- |'''$*''' |모든 인수를 모아 하나로 처리 |- |'''$@''' |모든 인수를 각각 처리 |- |'''$?''' |직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패) |- |'''$$''' |이 쉘 스크립트의 프로세스 ID |- |'''$!''' |마지막으로 실행한 백그라운드 프로세스 ID |} == 기존 명령어 사용 == 셸 스크립트에선 셸에서 사용하는 모든 명령어(ls, chmod, rm, mkdir 등등)를 다 사용할 수 있다. 결과가 반환되는 명령어의 결과를 활용하고 싶을 경우 변수에 할당하여 사용할 수 있다. * 변수에 할당하는 방법으론 <code>$()</code>를 이용하는 방법과 `로 명령어를 감싸주는 방법 두가지가 있다. <syntaxhighlight lang="bash"> $ A=$(date) $ echo $A Tue Oct 25 23:12:15 UTC 2022 $ B=`date` $ echo $B Tue Oct 25 23:12:16 UTC 2022 </syntaxhighlight> == 참고 문헌 == * [https://engineer-mole.tistory.com/200 <nowiki>[Linux] 쉘 스크립트(Shell script) 기초</nowiki>] * [https://reakwon.tistory.com/136 <nowiki>[리눅스] 쉘 스크립트(SHELL SCRIPT) 기본 문법, 작성방법(변수,반복문,비교문,종료상태 등)</nowiki>]
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록