2016-02-29 64 views
0

我正在嘗試編寫一個函數quickgit,它自動添加,提交併推送來自fortune的提交消息的附加好處。我有以下腳本:從魚貝殼功能運行財富

function quickgit 
    git add --all 
    git commit -m (fortune) 
    git push 
end 

其中除提交信息,而不是作品是"(fortune)"的是從財富的消息。我如何確保fortune在我的魚類功能中運行和擴展?

+0

請注意,我有一個完美的bash別名,代碼是'alias quickgit ='git add --all; git commit -am「$(fortune)」; git push;'' – swsmith

回答

1

fish有足夠的問題與得到引用的更好的點正確的,我會避免完全在腳本中使用它。 (見https://github.com/fish-shell/fish-shell/issues/159

我無法重現你的確切問題,但遇到了我自己的多行命運。 (見引用錯誤)

話雖這麼說,您的使用情況下,你可以完全避免它:

function quickgit 
    git add --all 
    fortune | git commit -F - 
    git push 
end 
1

命令替換默認拆分命令對換行邊界的輸出。所以多行財富會將多個參數傳遞給git commit -m。這意味着只有第一行將由-m選項處理,而第二到第n行將最終被視爲文件名。嘗試將set -l IFS添加到您的函數來抑制分裂。另一種方法是捕捉一個VAR輸出,然後插了var:

set -l fortune (/usr/games/fortune) git commit -m "$fortune"

但請注意,將取代有空間的每個換行符。