bash에서 파일 include 시키기 (source 명령어)
쉘 스크립트를 짜다보면, 스크립트 양이 많아져서, 코드의 가독성이 떨어지는 경우가 꽤 생긴다.
여러 개의 쉘로 나누어서, 상위 쉘에서 하위 쉘 여러 개를 실행하는 식으로 작성하는 방법도 있지만,
일반 프로그래밍 언어와 마찬가지로 쉘에서도 include 할 수 있는 방법이 있다.
쉘에서는 source 명령어를 이용하면, 특정 파일의 변수 및 함수를 include 시킬 수 있다.
main.sh에서 test_defs에 있는 fn_usage와 fn_echo를 호출해 보겠다. 코드 자체에 특이 사항은 없고,
일반 프로그래밍언어의 include와 다른 점은 test_defs에서 MAIN_VAR을 사용 가능하다는 것이다.
- 소스 코드
main.sh |
#!/bin/bash source test_defs # test_defs를 include MAIN_VAR=main_var if [ $# != 1 ] if [ $1 == "echo" ] |
test_defs |
TEST_PATH=$PWD TEST_VAR=test.sh function fn_usage
|
test.sh |
#!/bin/bash echo "run test.sh" |
- 실행 방법
./main.sh echo
라고 실행하면, test_defs의 fn_echo가 실행되고, fn_echo에서는 test.sh를 실행한다.
./main.sh
라고 실행하면, fn_usage가 실행된다.