2013-11-04 90 views
2

我正在編寫一個shell腳本,它可以創建一些git調用。特別是,我正在尋找一種方法來確定git rebase調用是否成功或者是否存在合併衝突。這是我迄今爲止所擁有的。在shell腳本中獲取git返回值

returnStatus=$(git rebase master); 
if [[ returnStatus == 1 ]]; then 
    break; 
else 
    echo $branch; echo "rebased successfully"; 
fi 

但是,我認爲第一行不是存儲返回值,而是存儲rebase的實際輸出。我需要知道它是否成功。我怎樣才能做到這一點?

在此先感謝!任何意見非常感謝。

回答

2

只是這應該這樣做:

if git rebase master; then 
    echo "$branch" 
    echo "rebased successfully" 
else 
    break 
fi 

我不知道爲什麼你有一個break還有......你在一個循環?否則你的意思可能是exit ...

+0

噢,對不起,我在一個循環 – Mason

3

$?包含最後命令的退出代碼。你可以執行例如

git rebase ... 
case $? in 
    0) ... ;; 
    1) ... ;; 
    ... 
esac