1. sh대신 source

bash에서 재사용성을 높이기 위해서 환경설정 파일을 읽어서  (include file 개념) 처리해야 하는 상황이다.

export 만 정의하는 스크립트가 있고, 실행스크립트들이 export 스크립트를 재사용하여 편하게 스크립트 개발을 할 수 있게 하려고 한다. 

이때 sh 이 아닌 source를 쓰는 것이 좋다. 



export.sh


#!/bin/sh

export A=/development/work



exe.sh


#!/bin/sh

sh export.sh

export A


위와 같이 sh 명령어를 사용하면 출력되는 결과는 없다. export.sh 를 실행만 시키고 context는 공유하지 못한다는 뜻이 된다. 즉 하나의 export.sh 프로세스를 실행하고 exe.sh에는 아무 영향을 주지 말라는 뜻이다. 그냥 실행의 의미이다. 


=> 따라서 export.sh의 내용을 영향을 받게 하기 위해서는 sh 대신 source를 사용하면 된다.


#!/bin/sh

source export.sh

export A




2. -bash: export: `path..': not a valid identifier


원인은 export 하는 변수의 이름에 허용하지 않은  charactor를 넣었을 때 발생한다.

'-'는 허용하지 않는다. 


만약 쓰고 싶으면, export yyy='\x41\x42\x43'  이렇게 쓰면 된다.

Posted by '김용환'
,