따옴표와 공백이 포함된 Bash 스크립트

따옴표와 공백이 포함된 Bash 스크립트

나는 git에서 좋은 결과를 얻으려고 노력하고 있습니다.

FORMAT='%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
LOG_PARAMS="--color --pretty=format:$FORMAT --abbrev-commit --no-walk"
function gch() {
  git log $LOG_PARAMS $(commits)
}

(여기서 커밋은 관련 커밋을 수집하는 함수입니다.) 그러나 내가 얻는 것은 이것이다:

fatal: ambiguous argument '%(s)': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

아마도 이것은 인용 및 공백과 관련이 있지만 저는 bash를 처음 접했습니다. 도움이 필요하세요?

답변1

너 방금 고생했어분사-더 많은 인용문 사용™명령에 여러 매개변수를 보내려면 배열을 사용하십시오.

LOG_PARAMS=("--color" "--pretty=format:$FORMAT" "--abbrev-commit" "--no-walk")
...
    git log "${LOG_PARAMS[@]}" "$(commits)"

이것은 나에게 효과가 없었습니다 "$(commits)". 아마도 당신이 만든 또 다른 기능인 것 같습니다.

관련 정보