본문 바로가기
CS

쉘 스크립트

by wwns 2024. 1. 16.
반응형

Shell Script

  • 변수 저장, 반복문, 제어문 등을 가지고 스크립트 작성이 가능
  • 하나의 명령어처럼 실행될 수 있는 실행 가능한 프로그램

작성방법

  • Shell Script 시작 부분
    • 스크립트를 수행할 Shell 지정
    • #!/bin/bash (#으로 시작해도 주석으로 인식하지 않음)
    • Default로 Bron Shell 사용

변수

  • 변수명=변수값
  • 호출 시 $ 사용
변수 의미
${변수명} 변수명 뒤에 추가 문자를 붙일 때 사용
${#변수명} 변수의 문자 수
${변수명:-string} 변수가 정의되고 NOT NULL이면 변수값 출력, 그렇지 않으면 string 출력
${변수명:+string} 변수가 정의되고 NOT NULL 이면 string 출력, 그렇지 않으면 출력안함
${변수명:=string} 변수가 정의되고 NOT NULL 이면 변수값 출력, 그렇지 않으면 string을 출력하고 변수에 string을 넣음
  • 위치 변수
변수 의미
$0 shell script 이름
$1, $2, $3, ... 첫 번째, 두 번째, 세 번째 Argument 출력
$* "arg1 arg2 arg3 ..." (하나의 문자열로 전체 Args 출력)
$@ "arg1" "arg2" "arg3" (각각 다른 문자열로 전체 Args 출력)
$# Args 갯수
$? 마지막 수행된 명령어의 return 값
$$ 현재 shell script 를 수행하고 있는 shell PID
$! 현재 shell에서 수행한 마지막 Background의 PID
$_ 마지막 수행된 명령어의 마지막 Argument
  • 명령어 그룹
Grouping 방법 의미
( 명령어 Script ) 다른 Script를 호출한 것 처럼 SubShell 환경으로 수행
{ 명령어 Script ; } 현재 Shell에서 수행되며 마지막에 세미콜론이 필요함
  • 조건문
    • [ ] 괄호 사이에 띄어쓰기 필수
if [ 조건문1 ];
	then
    	[ 조건문1 ]이 True 일 때 명령
    elif [ 조건문2 ];
    then
    	[ 조건문2 ]이 True 일 때 명령
    else
    	모든 조건에 맞지 않을 때 명령
fi
  • case문
case $변수 in
값1) 명령
;;
값2) 명령
;;
*)
위 조건을 모두 만족하지 못했을 때 명령
;;
ease
  • while문
# 조건문이 참이면 무한 반복
while [ 조건문 ]
do
	명령
done

# 변수 TEXT에서 문자열을 하나씩 읽어들여 String 변수에 넣고 반복
while read String
do
	명령
done < $TEXT

# 위의 while문과 동일한 for 구문
for String in $TEXT
do
	명령
done
  • Function : 명령어 Set을 지정하여 사용
function test
{
	명령
}

test ()
{
	명령
}

# 호출 방식
# test param

 

반응형

'CS' 카테고리의 다른 글

리눅스 OS 기본 이론  (0) 2024.01.12
네트워크 구성  (0) 2024.01.11
네트워크 기본  (0) 2024.01.09
OS - Virtual Memory  (0) 2023.11.06
OS - Memory Management2  (0) 2023.11.01