리눅스 | .sh 쉘 스크립트 작성법

|

요약

실행방법

실행권한이 없는 경우

sh ./start.sh

실행 권한 부여 후 실행

chmod 775
./start.sh

쉘 스크립트 작성방법

IF

if [ "a" != "a" ]
then
echo "true"
else
echo "false"

Switch

DRINK="coffee"
case "$DRINK" in
    "beer") echo "맥주입니다" 
    ;;
    "juice") echo "주스입니다" 
    ;;
    "coffee") echo "프로그래머가 마시면 커피로 변화!" 
    ;;
esac

입력, 출력

read NAME
echo "Hello $NAME!"

변수

var="변수1"
var2="변수2"
echo "var2=$var2"

var2="변수3"
echo ${var2}

변수 덮어쓰기 방지

var="변수1"
readonly var

함수생성

#함수를 작성한다
MyFunction () { 
    echo "함수의 echo이다."
}
MyParamFunc() {
    echo "인수1:$1 인수2:$2"
}

#함수를 호출한다
MyFunction
MyParamFunc param1 param2

변수 삭제(unset)

var="변수1"
unset var

변수값 치환

문법설명
${var}변수 값을 바꿔 넣는다.  
${var:-word}변수가 아직 세팅되지 않거나 공백 문자열의 경우 word를 반환한다. var에는 저장되지 않는다.
${var:=word}변수가 아직 세팅되지 않거나 공백 문자열의 word를 반환한다. var에 저장된다.
${var:?word}변수가 아직 세팅되지 않거나 공백 문자열의 경우 치환에 실패하고, 스탠다드 에러에 에러가 표시된다.
${var:+word}변수가 세팅되지 않은 경우 word가 반환된다. var에는 저장되지 않는다. 

날짜계산

date +FORMAT

today=`date +%y-%m-%d` #23-04-01
echo $today

today=`date +%Y-%m` #2023-04
echo $today

time=`date +%H:%M` #20:00
echo $time

특정 날짜, 시간 출력

yesterday=`date -d "-1 days"`
echo $yesterday

tommorrow=`date -d "+1 days"`
echo $tommorrow

date=`date -d "+2 weeks"`
echo $date

date=`date -d "-3 months"`
echo $date

포맷 적용

date=`date -d "-3 months" "+%m-%d-%Y"`
echo $date

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

클릭하여 복사