2017-12-13 27 views
2

요약이있는 힘내 커밋과 설명이 있습니다. 내가 git log --format=%B -n 1 <commit>를 통해 커밋 메시지를 볼 때, 그것은 다음과 같습니다변수에 저장 될 때 커밋 메시지가 엉망입니다.

Commit Summary Line * Commit Description Line 1 * Commit Description Line 2 * Commit Description Line 3

나는 배쉬 변수에이를 저장하려고 할 때, 그러나, 이렇게 : 다음

message=$(git log --format=%B -n 1 <commit>)

및 내가 echo $message하려고하면 커밋 메시지에서 각 줄과 섞인 나의 현재 디렉토리에서 폴더 이름을 얻는다. 게다가 커밋 메시지에서 모든 줄을 보지도 않고 그 중 일부만 보았습니다.

Commit Summary Line folder1 folder2 folder3 Commit Description Line 1 folder1 folder2 folder3 Commit Description Line 3

이 동작에 대한 설명이 있습니까 : 그래서, $message은 다음과 같이 보이는? 난 그냥 $message 전체 커밋 메시지에서 모든 줄을 갖고 싶습니다. 나는 그들이 새로운 라인에 있는지 아니면 한 줄에 모두 있는지 상관하지 않는다, 나는 단지 줄 변수에 저장된 모든 줄을 원한다. 이것을 어떻게 성취합니까?

+3

내가 항상 말했듯이, 의심 할 때 ... 인용! –

답변

2

의 장난이 여기에있는 것 같습니다. *으로 인한 것입니다. message 변수 주위에 따옴표를 추가하면 좋을 것입니다!

echo "$message" 
+1

쉘 스크립트에서 변수를 사용하지 않고 변수를 사용하면 큰 따옴표는 거의 항상 실수입니다. 여러 가지 방법으로 잘못 될 수 있습니다! –

+0

@GordonDavisson - 현명한 말은 내 친구! 나는 따옴표가 내 하루를 망쳐 놓은 모든 시간을 셀 수 없다. –