본문 바로가기
리눅스(Linux, Server)

[Linux] 쉘 스크립트란? (export PATH, 환경변수, 스크립트 자동실행)

by 안한량 2023. 1. 4.
728x90

리눅스 쉘 스크립트

리눅스 쉘 스크립트란

별도의 컴파일 과정 없이 리눅스/유닉스 쉘에 의해 실행되는 프로그램 코드이다.

쉘에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(batch) 파일이며

한 줄씩 순차적으로 읽으면서 명령어들을 실행시켜주는 인터프리터 방식의 프로그램이다.

 

쉘 스크립트를 활용하여 여러 줄의 명령어를 수행할 수 있고, 이를 자동화할 수 있는 방법도 알아보도록 하자.


예제

* 파일명 : test.sh
#!/bin/bash
# Shell script example
function helloWorld
{
      echo "Hello World"
}

numParam=$#

if [ $numParam -eq 1 ]
then
echo "$1"
elif [ $numParam -eq 2 ]
then
echo "$1"
echo "$2"
else
echo "No params"
fi

for i in {1..10}
do
echo "$i processing"
done

MSG="Shell Script Example"
echo $MSG

helloWorld

vi 또는 nano 에디터를 사용하여 test.sh 파일을 만들고 이 내용대로 입력한다.

(붙여 넣기는윈도우 cmd > ssh로 접속했을 경우에만 에디터 내부 편집 중 우클릭을 통해 가능하다.)

 

간단한 코드 분석

# 주석

! 지시

#!/bin/bash 가 뜻하는 것 = 쉘을 이용해서 해석하여라.

 

test.sh a b c를 줬다면
numParam 값은 3이 된다. (매개변수가 3개이기 때문)

 

조건문

if [ $numParam -eq 1 ]
then
echo "$1"

만약 numParam 이 1과 같다면

$1 에코 출력

 

elif ~~~

 

else ~ 이도저도 아니라면

 

fi (finish 조건문 종료)

 

for i in {1..10}
do
echo "$i processing"
done

와 같이 반복문 또한 사용 가능

 

파이썬 언어와 유사해 보인다.


쉘 스크립트 내 선언된
numParam 변수는 쉘 스크립트 종료 시 사라진다.

하지만 이 변수를 리눅스가 계속 기억하게 하고 싶다면?

 

환경변수를 사용하면 된다.


환경변수 설정과 부팅 시 스크립트 자동실행

다음은 /root 밑의 bash profile 쉘 스크립트이다.

사진 1

.bash_profile

 

만약 우리가 리눅스 서버를 만들고 프로그래밍을 하여 켜자마자 자동으로 실행되어야 하는 프로그램이 있다면 

이곳에 담아서 바로 실행할 수 있다.

 

그렇다면 .bash_logout은?
로그아웃할 때 실행되겠다.

 

사진 1을 보면 스크립트 파일 마지막 줄에

export를 통해 쉘 스크립트가 끝나도 바깥의 파일에서 참조할 수 있는'환경변수'로 만들어줄 수 있다.

728x90