我正在使用 OSX,希望在終端機中添加一個功能來運行一組 git 命令。因此,我在我的主目錄中建立了一個 .bash_profile,程式碼如下:
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH=/usr/local/bin:$PATH
export PATH="$PATH:"/Applications/microchip/xc8/v1.35/bin""
export PATH=$PATH:"/Applications/microchip/xc16/v1.25/bin"
export PATH="$PATH:"/Applications/microchip/xc8/v1.38/bin""
function lazygit() {
git add .
git commit —a -m “$1”
git push
}
但是,運行此程式碼後,我收到以下錯誤:
Seths-Air:rpt04-recursion Seth$ lazygit "test of lazygit"
error: pathspec '—a' did not match any file(s) known to git.
error: pathspec 'of' did not match any file(s) known to git.
error: pathspec 'lazygit”' did not match any file(s) known to git.
Everything up-to-date
答案1
線路
git commit —a -m “$1”
包含幾個看起來與 shell 解釋的字元相似但實際上是其他字元的字元。
第一個—a
vs -a
:由於破折號較長不是解釋為選項但作為檔案名稱。-
此處使用標準破折號/減號 ( )。
第二個“$1”
vs "$1"
:您的簽入評論字串將被分成單獨的單詞,第一個和最後一個單字將用一個有趣的字元擴展。
在所有情況下,看起來您要么使用了不合適的編輯器來編寫程式和腳本,要么從某個進行了破壞的網站複製並貼上了內容。您需要純 ASCII 字符,因為它們直接位於鍵盤上,而不是供人類使用的“漂亮打印”變體。如果有疑問,請從此處複製並貼上它們:-)