[Shell script] 변수 설정 및 실행하기

David·2022년 7월 20일
0
post-thumbnail

🤔 정리하는 이유

회사에서 스크립트 파일을 통해 CI/CD를 제공하는데
Shell Script 문법을 알아야 이해가 되기 때문에
정리를 해볼려고 한다.

정리 방법은 임의의 파일을 만들고
명령어를 실행 하면서 정리하고 한다.

Shell Script란?

  • Shell 이나 CLI 구동되도록 작성된 스크립트.
  • 여러 명어들이 나열된 스크립트 파일이 자동으로 실행 또는 행위
  • Interpreter 방식으로 작동



shebang(#!)[쉬뱅, 셔뱅] 부터


셔뱅 어원은 유닉스 계열에서 다음과 같다고 한다.

sharp(#) + bang(!) 합성어 > Sha-bang

Shebang은 CLI(Command Line Interface)에서 실행시키는
스크립트의 맨 처음 온다.

Shebang이 있는 스크립트는 프로그램 실행 시, 프로그램 로더가
스크립트 첫 줄의 부분을 Interpreter 지시자로 구문을 분석함.

shebang.sh


#!/bin/bash
echo $(which bash)

첫 실행 시 권한 부여

$ chmod +x shebang.sh

실행



변수 선언은 어떻게?


변수

  • "로컬변수""환경변수(전역)"
  • 모든 값을 문자열로 저장
  • 자료형을 명시하지 않음
  • 값을 사용할 때 변수명 앞에 "$"를 사용. (Ex. echo ${variable})
  • 변수 생성 시 "=" 앞뒤로 공백이 없어야 함. (Ex. data="test")

환경변수

  • $0 - 실행된 쉘 스크립트 파일명
  • $# - 스크립트에 전달된 인자(파라미터)의 갯수
  • $$ - 쉘 스크립트 PID

variable.sh 예제를 통한 이해


#!/bin/bash

variable="x다"     # 변수 선언
param="y다"        # 변수 선언

echo '실행된 파일명($0) > '$0''   # 있는 그대로 표현 => ''
echo '스크립트 실행 시 전달된 파라미터 갯수($#) > '$#''
echo '쉘 스크립트 PID($$) > '$$'' # 있는 그대로 스트링에서 변수 표현 => 'string '변수명''
echo "variable=${variable}"  
echo "param=${param}"          # 변수 표현

variable=${param}              # 변수에 다른 변수값 할당

echo "param 대입 후 variable 값은 >> ${variable}"



🤖 script에서 다른 script 실행


sender.sh

  • sender 스크립트에서 user_name, app_name, project_path 저장
  • receiver 스크립트를 실행하며 위의 정보를 파라미터로 전달

#!/bin/bash

echo "----------------------Sender > Start ----------------------"

user_name="david"
app_name="QA"
project_path=$(pwd) 

echo "user_name > ${user_name}"
echo "app_name > ${app_name}"
echo "project_path > ${project_path}"


echo "----------------------Sender > End ----------------------"
echo ""

sh receiver.sh ${user_name} ${app_name} ${project_path}

receiver.sh

  • 전달받은 파라미터 변수 설정 > "$1", "$2", "$3"
  • 전달받은 파라미터 보여주기

#!/bin/bash

user_name="$1"
app_name="$2"
project_path="$3"


echo "-----------------------start receiver-----------------------"
echo "receive param > user_name > ${user_name}"
echo "receive param > app_name > ${app_name}"
echo "receive param > project_path > ${project_path}"



👏🏻 포스트를 마치며


쉘 스크립트를 이해하는데
가장 기초적인 변수 할당 및 사용법
그리고 스크립트 실행을 살펴 보았습니다.

쉘 스크립트는 변수 할당이
참 애매해서 헷갈리는 부분이
개인적으로 많았네요 😵‍💫

다음 PART2 에서는 함수, 조건문, 반복문의
예시로 뵙겠습니다.

profile
공부하는 개발자

0개의 댓글