Technique/LPIC

쉘 스크립트 간단한 문법 정리

kaelina 2019. 10. 20. 16:18
반응형

if 문

if 조건식
	then
    	실행문 1
    else
    	실행문 2
fi

;을 이용하여 복수의 커맨드를 1행에 나열하는 것도 가능하다. 또한 스크립트의 실행에는 test 커맨드나 source 커맨드를 생략하는 방식을 사용한다.

 

case 문

case 식 in
	값1
    	실행문1 ;;
    값2
    	실행문 2 ;;
      :
      :
esac

실행문 쉬에 ;; 을 붙이는 것이 중요

종료 시에는 esac를 붙이는 것도 중요

 

for문

for 변수명 in 변수에 대입할 값 리스트
do
	실행문
done

 

while 문

while 조건문
do
	실행문
done

 

read 커맨드

read 커맨드는 쉘스크립트 내에 표준 입력으로부터 입력을 받아들이는 용으로 이용한다. 다음의 예는 유저의 이름을 입력하면 해당 이름을 사용하여 인사말을 돌려주는 예제이다.

echo -n "Who are you? : "
read username
echo "Hello, $username!"

 

쉘 스크립트의 실행환경

쉘 스크립트는 쉘의 종류에따라 다양하다. 작성한 스크립트가 bash 쉘 용으로 작성된 경우 스크립트의 선두에는 다음과 같이 지정된다,

#!/bin/bash

이것을 1행에 작성하는 것으로 스크립트는 bash 쉘로 실행되는 것이 된다.

 

실행 권한이 있는 스크립트 파일을 커맨드 라인에 지정하거나 bash 커맨드의 인수에 지정한 쉘 스크립트를 실행하면 새로운 쉘 프로세스 (bash)가 실행한 쉘의 자식 프로세스로서 생성되며 해당 환경에 스크립트가 실해된다. 따라서 원래의 쉘에 export 커맨드를 사용한 export 된 변수는 쉘 스크립트의 실행환경에도 유효하게 된다. 하지만 스크립트 내에 환경을 변경할 경우 스크립트의 실행이 끝나도 실행의 원래 환경에는 반영되지 않는다.

 

쉘 스크립트는 실행한 유저의 권한으로 동작된다. 다른 유저의 권한으로 실행하기 위해서는 일반적인 SUID, SGID를 이용하지만 보안상의 이유로 Linux에서는 스크립트 파일에 설정된 SUID, SGID는 무시된다.

 

반응형