OS: Ubuntu 16.04 (amd64)
Shell: bash
Bash 또는 sh 기반으로 쉘 스크립트를 만들다 보면 하나의 스크립트에서 다른 쉘 스크립트를 실행할 때가 있다. 작은 숫자나 짧은 문자열과 같이 간단한 변수는 그냥 argument로 넘겨도 되지만, 가끔은 배열(array)이나 길이가 꽤 긴 문자열을 포함해서 이런 복잡한 argument의 개수 자체가 매우 많아지면 argument를 쓰는 것이 성가신 작업이 되고 만다. 그럴 때는 환경변수를 쓰는 방법이 있다.
1. Argument passing 방법
<script_1.sh>
#!/bin/sh
EXP_NAME="wireless simulation 180206"
echo "Experiment name is $EXP_NAME"
./script_2.sh $EXP_NAME
<script_2.sh>
#!/bin/sh
EXP_NAME=$1
echo "Experiment name is $EXP_NAME"
2. 환경변수를 사용하는 방법
<script_1.sh>
#!/bin/sh
EXP_NAME="wireless simulation 180206"
FLOW_SET="0 1 2 3 4 5 6 7 8 9"
echo "Script 1 - experiment name is $EXP_NAME"
for item in $FLOW_SET
do
# Do some tasks.
echo "Script 1 - working on $item"
done
export EXP_NAME
export FLOW_SET
./script_2.sh
<script_2.sh>
#!/bin/sh
echo "Script 2 - experiment name from environment variable: $EXP_NAME"
for i in $FLOW_SET
do
echo "Script 2 - working on $i"
done
<환경변수를 이용한 방법 실행 결과>
'IT > Linux' 카테고리의 다른 글
리눅스에서 FreeRDP(xfreerdp)로 윈도우10 (2018년 1월 이후) 로그인이 안될 때 (0) | 2018.03.15 |
---|---|
우분투(Ubuntu) 16.04 화면이 멈추고 마우스만 움직일 때 (0) | 2018.02.19 |
Ubuntu 16.04 + Google Chrome 브라우저 == Dropbox install failure (0) | 2017.08.20 |
Ubuntu 호스트 이름(hostname) 변경 후 unable to resolve host 에러 발생하는 경우 (0) | 2017.07.07 |
리눅스에서 json 데이터 포맷을 보기 좋게 변환하기 (0) | 2017.06.15 |