2014-06-17 3 views
0

나는 명령을 bash 스크립트에서 사용하여 COMMIT_SHA 값을 파이썬 파일로 스트리밍합니다.bash 스크립트 : sed를 사용하여 파일에 환경 변수를 스트리밍

COMMIT_SHA = "" 

그렇게 같은 실제 커밋 샤 가질 필요가 bash는 스크립트 후 :

COMMIT_SHA = "56e05fced214c44a37759efa2dfc25a65d8ae98d" 

파이썬이 될 것입니다 수행을이 bash는 스크립트를 실행하기 전에 settings.py 파일이 라인을 가지고 쉽지만 Bash를 사용하여이 작업을 수행해야합니다.

COMMIT_SHA=`git rev-parse HEAD` 
sed $PROJECT_DIR/settings.py "^COMMIT_SHA = .*$" 'COMMIT_SHA = "$COMMIT_SHA"' 

그러나이 단순히 내가 원하는 것이 아니다 내 settings.py에 COMMIT_SHA = "$COMMIT_SHA"을두고 : 다음은 내가 시도한 방법입니다.

+0

에서,

sed $PROJECT_DIR/settings.py "^COMMIT_SHA = .*$" "COMMIT_SHA = \"$COMMIT_SHA\"" 

시도하거나 당신이 당신의 초기 파일이'COMMIT_SHA = "자리 표시 자"'라고 할 경우는 좀 더 쉽게 할 수 있습니다. 그렇다면'sed -i -e 's/PLACEHOLDER/$ (git rev-parse HEAD)/"settings.py"... – twalberg

답변

1

최종 줄을 ''에 입력했기 때문입니다.

대신,보다 일반적인 형태

sed -i "s/^COMMIT_SHA = .*$/COMMIT_SHA = \"$COMMIT_SHA\"/" $PROJECT_DIR/settings.py 
+0

완벽 해! 감사! – tzenderman

관련 문제