본문 바로가기

이것 저것 공부/리눅스

[Linux/Shell] 리눅스 bash shell 스크립트

리눅스 bash를 이용하여 스크립팅을 할 수 있습니다.

기본적인 매크로는 makefile로 할 수 있지만,
반복문이나 조건문 같은 복잡한 명령은 불가능 하기 때문에 shell script를 사용합니다.

shell script는 일반 프로그램 처럼 실행 할 수 있으며, chmod 명령어를 통해 실행권한을 줘야합니다.

 

Shell Script 문법

직접 작성하려다가 정리가 잘 되어 있는 글이 있어서 링크로 대체합니다.
해당 링크에 빠진 부분 있다면 그 부분만 추가로 작성할 예정.

blog.gaerae.com/2015/01/bash-hello-world.html

 

Bash 입문자를 위한 핵심 요약 정리 (Shell Script)

 

blog.gaerae.com

작성시 유의 사항

readonly variable       =     10;

# 위와 같이 작성하면 에러가 남.

readonly variable=10;

# 위와 같이 붙여줘야함.
줄 바꿈을 CRLF로 처리할 경우 경고가 나옴. LF로 처리할 것

CRLF일 경우

code

# 위와 같이 작성하면 'code\r' 로 인식함.

code;

# 위와 같이 ;를 붙여주면 재대로 인식함. 하지만 경고는 나옴.

주석

# 한 줄 주석

:<<'END'
긴 주석
계속 주석
END

명령어 결과값 받기

result=`commend`

# 또는

result=$(commend)

#후자는 명령어 줄에 (옵션 등으로 인해)공백이 있으면 제대로 인식하지 못하고 에러가 남

일부 문자열 비교

# 연산자 =~ 를 사용, if [ 조건식 ]; 이 아닌 if [[ 조건식 ]]; 을 사용
if [[ "a b c d e f" =~ "b" ]]; then
    echo "included !!"
fi

# 혹은 문자열 패턴을 이용
if [[ "a b c d e f" == *"b"* ]]; then
    echo "included !!"
fi

기타 팁

지연 주기

sleep .5; # 0.5초 대기
sleep 5; # 5초 대기
sleep 5s; # 5초 대기
sleep 5m; # 5분 대기
sleep 5h; # 5시간 대기
sleep 5d; # 5일 대기