Bash

bashrc 函式,帶有空格的 git commit -m

  • February 11, 2020

目前我有這個,如果我使用它,它會按預期工作,addcommit 'test commit'但如果我使用它,因為addcommit test commit它只看到第一個單詞test。理想情況下,我希望擁有它的功能addcommit test commit並執行git add . && git commit -m 'test commit'

addcommit()
{   
   git add . && git commit -m "$1"
}

PS。我不明白"$1"在這種情況下是如何工作的,也許這是理解它應該如何工作的一個很好的起點。

替換"$1""$*"

為了完全安全地免受IFS陷阱:

addcommit()
{
  local IFS=' '
  git add . && git commit -m "$*"
}

在這種情況下,別名可能會有所幫助,並允許送出消息包含任何字元:

alias addcommit='_m=$(fc -nl -0); git add . && git commit -m "${_m#*addcommit }" #'

addcommit $foo * $bar
# will use the literal "$foo * $bar" message, without expanding it

(適用於 bash 和 ksh93)

引用自:https://unix.stackexchange.com/questions/472483