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라는 명령어를 작성해주면 된다.
AWS 배포하기 3 (L2) 서버종료 및 프로그램 설치 (0) | 2022.11.16 |
---|---|
AWS 배포하기 2 (L2) 재배포를 고려한 cron종료 (0) | 2022.11.16 |
aws배포하기 6 (기본) 재배포하기 (0) | 2022.11.09 |
aws배포하기 3 (기본) 에러출력, 표준출력 (0) | 2022.10.19 |
aws배포하기 2 (기본) (0) | 2022.10.13 |