본문 바로가기
operating system/linux

리눅스 쉘 스크립트(shell script)

by hhhdangmoo 2022. 11. 14.
728x90
반응형

 

 

Shell Script 란?
  •  쉘 스크립트는 쉘에게 무슨 명령들을 실행할지 알려주는 스크립트 파일이다. 
  • Unix 커맨드들을 파일로 모아둔 것이라 생각하면 편하다.

 

  Shell Script 기본


우선 hello.sh 파일을 생성한다

vi test.sh

 

test.sh 파일은 쉘 스크립트라는 것을 알려주기 위해 첫 행에는 꼭 #! /bin/sh 를 써주어야 한다!

#!/bin/sh

echo "Hello World"

내용을 다 입력 했으면 파일을 저장 하고, 파일이 저장 된 위치로 이동한다.

쉘 스크립트 파일을 실행 시키는 커맨드는 세가지가 있다.

1. ./

./test.sh 를 사용하려면 실행 권한을 부여 해 주어야 한다.

test.sh 파일의 권한을 확인 해 보면 실행 권한이 없기 때문에 chmod로 권한을 부여 해주지 않으면 Permission denied 오류가 뜬다.

chmod 755 test.sh

./test.sh

실행 권한을 부여 해준 뒤 ./test.sh 로 파일을 실행 시키려면

쉘 스크립트 파일이 잘 실행 되는 것을 확인 할 수 있다

 

2. sh

sh 커맨드를 통해 쉘 스크립트를 실행 시킬 때에는 chmod로 실행 권한을 부여하지 않아도 쉘 스크립트가 실행 된다.

sh test.sh

 

3. bash

bash 커맨드도 sh 커맨드와 동일하게 실행 권한 부여를 하지 않아도 쉘 스크립트 파일이 실행 된다.

bash test.sh

 


주석 처리와 입/출력

 

# 를 입력 한 뒤 내용을 작성 하면, 그 내용은 코멘트 처리 되어 출력 되지 않는다. 주석 처리라고 생각 하면 된다.

코멘트 처리 된 내용들은 출력이 되지 않는 것을 확인 할 수 있다

 

쉘 스크립트에서도 입력과 출력이 가능하다.

read를 통해 입력 한 뒤, echo로 입력 받은 내용을 출력 한다

위와 같이 작성 한 쉘 스크립트를 실행 하면

다음과 같은 결과를 확인 할 수 있다

아무런 값을 입력하지 않으면 echo 커맨드는 실행 되지 않아 아무것도 출력 되지 않는다.


변수

 

변수명에는 영어, 숫자, 언더바를 사용 할 수 있다. 또한 변수를 초기화 할 때에는 앞 뒤 공백 없이 작성 해야 한다!

하나의 변수에는 하나의 값만을 저장 한다.

변수에 엑세스 할 때에는 변수명 앞에 $를 붙이거나 $를 입력 후 {}로 감싼다.

쉘 스크립트를 실행하면 위와 같은 결과를 확인 할 수 있다

 


 

배열

bash shell로 배열을 작성 해보자

  • 쉘 스크립트에서는 데이터 타입이 달라도 배열에 함께 쓸 수 있다.
  • 인덱스를 지정하지 않으면 첫번째 값만 출력 한다.

 

연산자

shell script에서는 산수 연산도 가능 하다!

산수 연산자 기능
+ 덧셈
- 뺄셈
* 곱셈
\* 제곱
/ 나눗셈
% 나머지
== 같다
!= 다르다


비교 연산자 의미
-eq 같다
-ne 다르다
-gt 더 크다
-lt 더 작다
-ge 크거다 같다
-le 작거나 같다

비교 연산자를 사용 할 때에는 if 문을 사용해야 한다.

#!/bin/bash

a=10
b=10

if [ $a -eq $b];
then
	echo "a equal to b"
fi

$a -eq $b의 output

변수 a와 b가 같다면 a equal to b를 출력한다.

a=b 이기 때문에 a equal to b가 출력 된 것을 확인 할 수 있다!

728x90
반응형