Shell 코드를 작성하다보면 Java Property를 읽는 경우가 종종 있는데 보통은

. <FILE_PATH>

를 사용하면 FILE에 있는 각 변수 들이 환경 변수로 등록이 되어 사용된다.

보통은 문제가 없는데 만일 변수에 .이 있을 경우는 이를 command로 인식해 버려서 command를 실행하는 형태로 처리 되어 변수를 읽을 수 없게 된다. 역시 편한거에는 한계가 있다는 그래서 검색을 하다 보니 관련 해서 좋은 TIP을 발견

sed '/^\#/d' myprops.properties | grep 'someproperty'  | tail -n 1 | cut -d "=" -f2-

sed로 #로 시작되는 Line을 제외한 후  grep로 원하는 property가 나오는 마지막 라인을 가져온 후 = 이후의 값을 읽어 온다.

추가적으로 trim을 처리 하는 부분을 추가하면 아래 처럼 쓸 수 있다.

JAVA_HOME=`sed '/^\#/d' build.properties | grep 'jdk.home'  | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'`

->build.properites에서 jdk.home property를 읽어서 JAVA_HOME변수에 넣는다.

출처 : http://shrubbery.homeip.net/c/display/W/Reading+Java-style+Properties+Files+with+Shell


흠... 드뎌 LOG Processing관련한 내용까지도 Tech Ops가 처리 해 줘서 이제는 12시에 다시 읽어 나서 작업 돌리고 자는 일은 끝..

이제는 LOG ANALYZE 도 인수 인계 해 버리면 정말 OAS API와는 작별을 고하게 될 듯 싶다.

Posted by headiron
,