티스토리 뷰

반응형

최근에 부쩍 DevOps와 관련된 컨텐츠를 작성하면서 자연스럽게 Linux 공부를 진행하던 와중, Shell Script라고 하는 Command Line Interface의 파일 관리를 집중적으로 하게 되었습니다. 그렇다보니 Shell Script에 대해 몰랐던 부분을 더 알게 되었고, 이를 활용하고자 하는 방법에 대해서 글을 작성해보려 합니다.

 

1. 기본 설정

스크립트 파일은 기본적으로 아래의 형식으로 시작합니다. 

#!/bin/sh

위 한줄의 내용이 의미하는 것은 시스템에 지금부터 셸 스크립트를 쓴다는 것을 선언하는 것입니다. 마치 C언어세어 #include 하는 것과 같은 맥락인거죠. 

 

2. 스크립트 파일 실행하기

스크립트 파일을 hello.sh로 만들었다면 사용법은 아래처럼 쓸 수 있습니다. 

/bin/sh hello.sh ## /bin/sh에 담긴 것으로 실행
./hello.sh       ## 즉시 실행 
sh test.sh       ## sh 가 전역 명령어로 설치된 경우
bash test.sh     ## bash 가 전역 명령어로 설치된 경우

 

3. 문법

이번에는 기본 문법에 대해 알아보려 합니다.

a. echo

echo 명령어는 print(); 와 같은 커맨드입니다. 

echo "Hello, ABBO" // Hello, ABBO 출쳑

b. # 

해시기호는 코멘트 처리하는 부분입니다.

# Comment line 
# 사용하는데 지장없음

c. 그 외 커맨드 

그리고 다른 내용은 실제로 터미널에서 사용하는 명령어들을 조합할 수 있습니다. 예를 들어 docker 명령어를 사용한다면 그냥 도커 실행 명령어를 사용해주면 됩니다. 

docker image prune -f -a # docker image 중 사용하지 않는 이미지를 삭제하는 명령어
systemctl start nginx ## nginx 를 systemctl 명령어로 시작
sudo systemctl stop nginx ## nginx 를 sudo 권한으로 systemctl 명령어로 중지

sudo service nginx reload ## nginx 를 sudo 권한으로 service 명령어로 재기동

 

4. 변수

변수를 선언하는 특징은 아래와 같습니다. 

a. let, const, var, String, int 같은 변수 타입이 필요없습니다. 호출은 $변수명 또는 ${변수명}으로 호출할 수 있습니다.

var="variable"
NAME="abbo"

echo "$var" // variable
echo "${NAME}" // abbo

b. 띄어쓰기를 허용하지 않습니다. 변수에 값을 입력하는 것도 '='를 붙여서 사용합니다.

var = "variable" (X)
var="variable"   (O)

c. string interpolation이 가능합니다. 

NAME="abbo"
echo "My name is $NAME" // My name is abbo

d. string type의 경우 쌍따옴표(")로 감싸줍니다. 

e. readonly로 final 선언이 가능합니다. 변수의 값이 덮어써지는 것을 방지해줍니다.

var="var1" 

echo $var // var1

var="var2"

echo $var // var2


readonly name="abbo"

echo $name // abbo

name="tistory" (X)

f. 배열 변수는 소괄호 () 로 사용합니다.

ARRAY=(item1 item2 item3)
ARRAY[0]="test"
ARRAY[2]=535

echo "ARRAY[0]: $ARRAY[0]" # ARRAY[0]: test
echo "ARRAY[1]: $ARRAY[1]" # ARRAY[1]: item2
echo "ARRAY[2]: $ARRAY[2]" # ARRAY[2]: 535

 

5. 변수를 전역변수로 사용하기 

타입스크립트, Node.js를 사용하시다보면 export라는 개념에 대해 익숙하실 겁니다. 셸 스크립트 파일 내에서 사용하는 변수를 전역변수로 지정하여 다른 파일에서도 사용 가능하도록 설정하는 키워드는 EXPORT 입니다. 

## test1.sh

var_internal="internal"
EXPORT var_external="external"
./hello.sh
## hello.sh
echo "$var_external" // external
echo "$var_internal" // Error

 

이어서 프로그래밍에 꼭 필요한 조건이나 반복에 대한 내용은 다음 글에 작성을 해보았습니다. 관심 있으신 분들은 확인해보셔도 좋을 것 같아요 :) 

https://abbo.tistory.com/455

 

[Shell Script] 2탄 - 조건문, 반복문과 연산자에 대해 알아보기

이번 글에서는 연산자, 조건 및 반복에 대해서 살펴보는 글을 적어보려 합니다. 1. 오퍼레이터 (연산자) 기본적으로 연산자를 표현하는 방법은 expr ${숫자} ${연산자} ${숫자} 로 표현하게 되고 ${연

abbo.tistory.com

 

반응형
댓글
공지사항