개발/AWS

AWS 배포하기 1 (L2) 환경변수와 bashrc

Ridiss 2022. 11. 16. 07:55

1. 환경변수

 $명칭 -> 환경변수

 - 환경변수 만들어 보기

 - export LOVE="i love you" 라고 작성후 echo $LOVE라고 작성하면 아래와 같이 결과값이 나온다.

하지만.. 이렇게 생성시 터미널 껏다가 켜면 사라짐

그래서 home에서 ls -l을 치면 .bashrc가 있는데

 

vi ./.bashrc 입력 -> 내용에 export LOVE="i love you" 입력 후 저장 (wq)

그러나 바로 echo $LOVE를 쳐봐야 안나오는데 이 bashrc의 경우 서버가 재시작되어야지만 적용이 됨

바로 적용하고 싶은경우 source명령어를 사용

 

2. 환경변수 파일 생성

vi var.sh

아래내용입력

#!/bin/bash  (이거는 bin/bash 의 명령어를 사용하겠다는 의미)

GITHUB_ID="codingspecialist"
PROJECT_NAME="aws-v2"
PROJECT_VERSION="0.0.1"
PROJECT_PID=""
JAR_PATH=""

export GITHUB_ID
export PROJECT_NAME
export PROJECT_VERSION
export PROJECT_PID
export JAR_PATH

 

하지만 이럴경우 재시작하면 bashrc에 등록되어있는게 아니기때문에 터미널 재시작시 사라지게된다. sourece 명령어를 사용해도 마찬가지임

 

deploy라는 스크립트를 실행해서 var.sh의 정보를 가져오게 만들어보자

vi deploy.sh 입력후

 

#!/bin/bash

 

source ./var.sh

 

echo $GITHUB_ID

 

작성 후 저장

하면 아래와 같이 뜨는걸 확인할 수있다.

하지만!

echo $GITHUB_ID를 입력할경우 아무것도 안뜨는데 이유가 뭘까.. 분명이 delpoy.sh파일내부에 source를 적용했으니 터미널을 끄기 전까지는 적용이 되어야하는데 말이다...

 

그 이유는 환경변수 적용 범위에 있다.

 

3. 환경변수 적용 범위

 A) .bashrc -> 어디에서나 사용가능

 B) 터미널 만들고 source적용 -> 터미널이 꺼지기 직전까지만

 C) 쉘 스크립트(파일)로 변수를 만들고 다른파일에서 실행하기 위해서는

 - .bashrc에 등록되어있던지 (너무 광역임)

 - sourece로 터미널에서 적용이 되어 있던지 (터미널 꺼지면 못씀)

 - deploy.sh 파일이 실행되는 동안에만 변수를 사용 -> **파일에 source라는 명령어를 작성해주면 된다.