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) }
(commits 是一個收集相關送出的函式)。但我得到了這個:
fatal: ambiguous argument '%(s)': unknown revision or path not in the working tree. Use '--' to separate paths from revisions
大概這與引用和空格有關,但我對 bash 還很不熟練。有什麼幫助嗎?
您剛剛遭受了分詞的困擾-如果您想將多個參數發送到命令,請使用更多引號™並使用數組:
LOG_PARAMS=("--color" "--pretty=format:$FORMAT" "--abbrev-commit" "--no-walk") ... git log "${LOG_PARAMS[@]}" "$(commits)"
這對我來說沒有
"$(commits)"
零件,我猜這是您創建的另一個功能。