쉘 스크립트 프로그래밍 - 1

2019. 10. 4. 23:53임베디드/리눅스시스템프로그래밍

쉘 스크립트 프로그래밍은 기존에 쉘 커맨드에 쓰이는 명령어와 추가적으로 문법을 사용한 형태다. 보통 서버 작업 자동화 및 운영을 위해 사용된다. 무엇보다 시스템 프로그래밍에서 꼭 익히는 내용 중 하나다. 최근에는 perl, python이 많이 쓰이나 전통적으로 쉘 스크립트도 많이 사용된다

 

자동화 프로그램의 필요 예로는 다음과 같다. 만일 서버 저장공간이 하나도 남지 못해서 서버가 다운되는 현상이 나타난다. 이를 해결하기 위해서는 주기적으로 로그파일을 갱신해야하지만 사람이 주기적으로 확인하고 삭제하는 것은 비효율적이다. 어떻게 하면 자동으로 오래된 로그 데이터를 삭제할 수 있을까? 이는 간단한 쉘 스크립트로 해결할 수 있다

 

기본 문법은 다음과 같다

1) .sh 확장자로 파일을 생성하고 작성한다

2) 파일의 첫 라인에는 반드시 "#!/bin/bash"로 시작해야 한다

3) 쉘 스크립트 파일은 실행권한을 가지고 있어야 한다

 

1. 쉘 스크립트로 "Hello world"를 출력하는 실습

#!/bin/bash
echo 'Hello world'

 

2. 변수 선언은

변수명=데이터 구조를 가지며, 띄어쓰기 없이 선언해야만 인식하게 된다. 기본적으로 문자열로 인식하게 된다. 따라서 굳이 " "처리를 할 필요는 없다. 선언된 변수를 사용할 땐 $를 앞에 붙여 구분해서 사용하도록 한다

#!/bin/bash

dir1='/home/neol'

echo $dir1
ls $dir1

 

2-2 이름 나이 직업을 출력하는 실습

#!/bin/bash

name='noel'
age=27
job='student'

echo $name $age $job

 

3. 리스트 배열을 만들어서 사용하는 방법

#!/bin/bash

# 배열 선언은 소괄호와 ,없이 띄어쓰기로 선언한다
array_var=("hello" "our" "world")
# 배열 원소 접근은 ${} 조합을 이용한다
echo ${array_var[1]}
# 인덱스에 *,@ 을 넣으면 전체 원소에 해당한다
echo ${array_var[*]}
echo ${array_var[@]}
# 배열 이름 앞에 #을 붙이면 크기를 출력한다
echo ${#array_var[*]}

# 기존 쉘 명령어에 $을 붙이면 결과값이 담겨진다
file_list=($(ls))
echo ${file_list[*]}

 

[출처] 패스트캠퍼스 컴퓨터공학 시스템프로그래밍