"Bash 변수 다른 스크립트로 전달"의 두 판 사이의 차이

잔글 (Jmnote 사용자가 Bash 변수 전달 문서를 Bash 변수 다른 스크립트로 전달 문서로 옮겼습니다)
 
(사용자 2명의 중간 판 17개는 보이지 않습니다)
4번째 줄: 4번째 줄:
==방법 1: source ★★==
==방법 1: source ★★==
{{참고|리눅스 source}}
{{참고|리눅스 source}}
*config.sh
{{소스헤더|settings.sh}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
HIS_NAME="John Smith"
HIS_NAME="John Smith"
HER_NAME="Jane Doe"
HER_NAME="Jane Doe"
</source>
</syntaxhighlight>
*run.sh
{{소스헤더|run.sh}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
source ./config.sh
source ./settings.sh
echo HIS_NAME=[$HIS_NAME]
echo HIS_NAME=[$HIS_NAME]
echo HER_NAME=[$HER_NAME]
echo HER_NAME=[$HER_NAME]
</source>
</syntaxhighlight>
*실행예시
{{소스헤더|실행예시}}
<source lang='cli'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# sh run.sh
[root@zetawiki ~]# sh run.sh
HIS_NAME=[John Smith]
HIS_NAME=[John Smith]
HER_NAME=[Jane Doe]
HER_NAME=[Jane Doe]
</source>
</syntaxhighlight>
:→ settings.sh의 변수(HIS_NAME, HER_NAME)가 그대로 run.sh로 전달됨


==방법 2: export==
==방법 2: export==
{{참고|리눅스 export}}
{{참고|리눅스 export}}
*a.sh
{{소스헤더|a.sh}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
HIS_NAME="John Smith"
HIS_NAME="John Smith"
HER_NAME="Jane Doe"
HER_NAME="Jane Doe"
export HIS_NAME
export HIS_NAME
export HER_NAME
export HER_NAME
## 변수 선언과 export를 한줄에 써도 된다.
## export HIS_NAME="John Smith"
## export HER_NAME="Jane Doe"
sh b.sh
sh b.sh
</source>
</syntaxhighlight>
*b.sh
{{소스헤더|b.sh}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
echo HIS_NAME=[$HIS_NAME]
echo HIS_NAME=[$HIS_NAME]
echo HER_NAME=[$HER_NAME]
echo HER_NAME=[$HER_NAME]
</source>
</syntaxhighlight>
*실행예시
{{소스헤더|실행예시}}
<source lang='cli'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# sh a.sh
[root@zetawiki ~]# sh a.sh
HIS_NAME=[John Smith]
HIS_NAME=[John Smith]
HER_NAME=[Jane Doe]
HER_NAME=[Jane Doe]
</source>
</syntaxhighlight>
:→ a.sh에서 변수(HIS_NAME, HER_NAME)를 전역으로 내보내어(export), b.sh에서 인식 가능


==같이 보기==
==같이 보기==
*[[Bash 변수를 Awk에 전달]]
* [[Bash 변수를 Awk에 전달]]
*[[Bash 함수 반환 값 받기]]
* [[Bash 함수 반환 값 받기]]
* [[리눅스 set -a]] - 생성(또는 변경)되는 변수를 export되게 한다.
* [[리눅스 source]]
* [[리눅스 export]]
* [[Bash 자식스크립트에 변수 전달하기]]
* [[Bash 자식스크립트에서 변수 받아오기]]
* [[Bash 자식스크립트에서 변수 받아와서 다른 자식스크립트에 변수 전달하기]]


==참고 자료==
==참고==
*http://stackoverflow.com/questions/5228345/bash-script-how-to-reference-a-file-for-variables
*http://stackoverflow.com/questions/5228345/bash-script-how-to-reference-a-file-for-variables


[[분류: Bash]]
[[분류: Bash]]

2020년 11월 27일 (금) 21:22 기준 최신판

Bash 변수 전달
Bash 변수 다른 스크립트로 전달

1 방법 1: source ★★[ | ]

settings.sh
HIS_NAME="John Smith"
HER_NAME="Jane Doe"
run.sh
source ./settings.sh
echo HIS_NAME=[$HIS_NAME]
echo HER_NAME=[$HER_NAME]
실행예시
[root@zetawiki ~]# sh run.sh
HIS_NAME=[John Smith]
HER_NAME=[Jane Doe]
→ settings.sh의 변수(HIS_NAME, HER_NAME)가 그대로 run.sh로 전달됨

2 방법 2: export[ | ]

a.sh
HIS_NAME="John Smith"
HER_NAME="Jane Doe"
export HIS_NAME
export HER_NAME
## 변수 선언과 export를 한줄에 써도 된다.
## export HIS_NAME="John Smith"
## export HER_NAME="Jane Doe"
sh b.sh
b.sh
echo HIS_NAME=[$HIS_NAME]
echo HER_NAME=[$HER_NAME]
실행예시
[root@zetawiki ~]# sh a.sh
HIS_NAME=[John Smith]
HER_NAME=[Jane Doe]
→ a.sh에서 변수(HIS_NAME, HER_NAME)를 전역으로 내보내어(export), b.sh에서 인식 가능

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}