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
정리하자면,
소스1의 스크립트에서 MYNAME이라는 변수를 스크립트가 실행되는 동안 환경변수에 임시로 저장하고
소스2의 스크립트를 실행시켜 변숫값을 가져와 출력하는 내용입니다.
서버에서 돌려보겠습니다.
1. 스크립트 파일 생성 📝
소스1과 소스2의 내용을 각각 vi 편집기로 열고 붙여 넣은 뒤 저장합니다.
명령어:
vi TestScript.sh
명령어:
vi echoMYNAME.sh
저장 명령어:
ESC키 + :wq + Enter키
2. 스크립트 파일 권한 변경 🔃
TestScript.sh와 echoMYNAME.sh 스크립트의 실행을 위해 파일 권한을 변경하겠습니다.
명령어:
chmod 775 TestScript.sh echoMYNAME.sh
또는
chmod 775 *.sh
를 통해 다수의 스크립트 파일을 한꺼번에 변경할 수도 있습니다.
(권한관련 이야기는 쉘 스크립트 실행 옵션 입력받기 (Page 0) 게시글에서 확인!)
3. 실행결과 🏃♀️
우선 변수 전달이 잘 되는지 안되는지 확인을 위해 echoMYNAME.sh 부터 실행해보겠습니다.
명령어:
./echoMYNAME.sh
당연히 아무 값도 나오지 않습니다.
아직 MYNAME 변수에는 아무 값도 없기 때문이죠.
이번엔 TestScript.sh 스크립트를 실행해보겠습니다.
명령어:
./TestScript.sh
TestScript.sh파일이 echoMYNAME.sh 파일을 실행시키면서 변숫값이 잘 전달된 모습입니다.
Command(리눅스 명령어) 특정 문자 기준 문자열 자르기(split) (0) | 2023.06.20 |
---|---|
ShellScript(쉘 스크립트) 실행 옵션 입력받기 (0) | 2023.06.17 |