상세 컨텐츠

본문 제목

ShellScript(쉘 스크립트) 다른 스크립트에 변수 넘기기

Linux/ShellScript&Command

by Hoonjo 2023. 6. 19. 19:00

본문

ShellScript(쉘 스크립트) 다른 스크립트에 변수 넘기기 (변수 전달하기)

 

 

 

에이전트에 사용될 스크립트를 개발하며 알게 된 소소한 팁입니다.

                                                           - 풀스택 개발&운영 고통 속에서..

 

 

 

 

쉘 스크립트를 작성하다 보면 현재 스크립트의 변숫값을 다른 스크립트로 전달하고 싶은 경우가 있습니다.

이럴 때 어떤 방법으로 전달하는지 알아봅시다.

- 중요한 기능을 가진 부분을 별도의 스크립트로 나눠서 관리하고 싶을 때

- 다른 개발자와 협업

에 유용할듯합니다. 😀

 

 

 

빠르게 소스부터 갑니다.

 

소스1 - (TestScript.sh)
#/bin/sh
# Script Ver. 0.0.1 (Linux)

# 변수 전달 구문
export MYNAME=HoonJo

# 다른 스크립트 실행 구문
./echoMYNAME.sh

exit 0

 

소스2 - (echoMYNAME.sh)
#/bin/sh
# Script Ver. 0.0.1 (Linux)

# 변수 호출 구문
echo "echoMYNAME.sh: $MYNAME"

exit 0

 

✔ 변수 전달의 핵심export 변수="값" 입니다.

 

정리하자면,

소스1의 스크립트에서 MYNAME이라는 변수를 스크립트가 실행되는 동안 환경변수에 임시로 저장하고

소스2의 스크립트를 실행시켜 변숫값을 가져와 출력하는 내용입니다.

 

서버에서 돌려보겠습니다.

 

 

 

1. 스크립트 파일 생성 📝

 

소스1과 소스2의 내용을 각각 vi 편집기로 열고 붙여 넣은 뒤 저장합니다.

 

명령어:

vi TestScript.sh


명령어:

vi echoMYNAME.sh

 

저장 명령어:

ESC키 + :wq + Enter키

 

스크립트 파일이 생성된 화면

 


 

2. 스크립트 파일 권한 변경 🔃

 

TestScript.shechoMYNAME.sh 스크립트의 실행을 위해 파일 권한을 변경하겠습니다.

 

명령어:

chmod 775 TestScript.sh echoMYNAME.sh

또는

chmod 775 *.sh

를 통해 다수의 스크립트 파일을 한꺼번에 변경할 수도 있습니다.

 

(권한관련 이야기는 쉘 스크립트 실행 옵션 입력받기 (Page 0) 게시글에서 확인!)

 

 


 

3. 실행결과 🏃‍♀️

 

우선 변수 전달이 잘 되는지 안되는지 확인을 위해 echoMYNAME.sh 부터 실행해보겠습니다.

 

명령어:

./echoMYNAME.sh

echoMYNAME.sh 실행결과

당연히 아무 값도 나오지 않습니다.

아직 MYNAME 변수에는 아무 값도 없기 때문이죠.

 

 

이번엔 TestScript.sh 스크립트를 실행해보겠습니다.

 

명령어:

./TestScript.sh

TestScript.sh 실행결과

TestScript.sh파일이 echoMYNAME.sh 파일을 실행시키면서 변숫값이 잘 전달된 모습입니다.

 

 

 

 

관련글 더보기