2013-09-23 1 views
1

정기적으로 업데이트되는 일부 컨텐트를 커밋하고 원격 저장소에 푸시하는 cron 작업으로 실행할 셸 스크립트를 설정하고 있습니다. 이 경우 커밋 메시지에 날짜와 시간을 포함시키는 것은 대상 사용자에게 충분한 정보입니다. 여기 에코닝 날짜 자동화 된 git 커밋

문제의 스크립트입니다

#!/bin/sh 

cd /Users/me/Documents/myfile/ 
git add . 
git commit -m 'Added notes for $(date)' 
git push -u origin master 

이 스크립트는 작동하지만 하나 개의 장애로 : 말 그대로 커밋 메시지를 모두 커밋의 날짜와 시간을 포함하여 "Added notes for $(date),"대신 말한다. 대신

답변

4

사용 따옴표 : 작은 따옴표 $(date)

git commit -m "Added notes for $(date)" 

확장과 문자 형태를 유지하지 않습니다.

으로는 here주의 : 따옴표로

묶는 문자 (' "') '$'를 제외하고, 따옴표 내의 모든 문자의 문자 값을 보존, '’, ‘\’, and, when history expansion is enabled, ‘!’. The characters ‘$’ and ‘'유지를 자신의 백 슬래시는 다음에 '$', '' ',' '', '\'또는 개행 문자 중 하나가 뒤에 오는 경우에만 특별한 의미를 지닙니다. 큰 따옴표 안에는 중 하나가 뒤에 오는 백 슬래시가 제거됩니다. 없이 문자 앞에 나오는 백 슬래시는 특별한 의미가 없습니다. 큰 따옴표는 큰 따옴표 안에 백 슬래시로 시작하여 으로 인용 될 수 있습니다.인용 부호로 표시되는 '!'가 백 슬래시를 사용하여 이스케이프 처리되지 않으면 내역 확장이 수행됩니다. '!'앞의 역 슬래시 은 제거되지 않습니다.

특수 매개 변수 '*'와 '@'는 따옴표 (쉘 매개 변수 확장 참조) 일 때 특별한 의미가 있습니다.