리눅스 쉘 스크립트
리눅스 쉘 스크립트란
별도의 컴파일 과정 없이 리눅스/유닉스 쉘에 의해 실행되는 프로그램 코드이다.
쉘에서 사용할 수 있는 명령어들의 조합을 모아서 만든 배치(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 쉘 스크립트이다.
.bash_profile
만약 우리가 리눅스 서버를 만들고 프로그래밍을 하여 켜자마자 자동으로 실행되어야 하는 프로그램이 있다면
이곳에 담아서 바로 실행할 수 있다.
그렇다면 .bash_logout은?
로그아웃할 때 실행되겠다.
사진 1을 보면 스크립트 파일 마지막 줄에
export를 통해 쉘 스크립트가 끝나도 바깥의 파일에서 참조할 수 있는'환경변수'로 만들어줄 수 있다.
'리눅스(Linux, Server)' 카테고리의 다른 글
[Linux] 쉘 스크립트 실행 방법 3가지 (source, dot, bash) (0) | 2023.01.10 |
---|---|
[Linux, 네트워크] WinSCP 장점과 다운로드 방법 (0) | 2023.01.05 |
[Linux] 리눅스 파일 cat, 파이프 명령 | , 리다이렉션 redirection > (0) | 2023.01.03 |
[Linux] 초기 Root 계정 설정 방법 (sudo 명령어) (0) | 2022.12.30 |
[Linux특강 정리] 리눅스 이해, 가상 머신 생성, 가상 네트워크 구축 방법 (0) | 2022.12.30 |