簡體   English   中英

GIT,檢查命令的返回碼(bash腳本)

[英]GIT, check return code of commands (bash script)

我正在做一個大型項目,該項目被拆分為許多存儲庫。

我正在考慮制作一個小的bash腳本,以迭代並簽出每個存儲庫中的特定遠程或本地分支或標簽, 但是如果由於分支不存在而失敗,則有一個標簽/存儲庫的第二個選項來簽出。

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ...
do

checkout $1 
(check if that fails somehow, and if it fails, checkout $2)

done

printf "\n ### DONE ### \n \n"

exit 0

或者,您有其他選擇嗎?

謝謝

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ... ; do
    checkout $1
    if [[ $? != 0 ]]; then
        checkout $2
        if [[ $? != 0 ]]; then
            echo "Failed to checkout $1 and $2"
        fi
    fi
done

printf "\n ### DONE ### \n \n"
exit 0

您無需手動檢查返回碼。 只需用||合並命令 你會沒事的

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ...
do
    checkout $1 || checkout $2 || echo "Error"
done

printf "\n ### DONE ### \n \n"

exit 0

|| 僅當前一個失敗時,才會執行以下命令。 將其視為“必須成功執行的命令之一”。 如果第一個成功,則很好,不必檢查以下內容。

&&僅在上一個成功的情況下才執行以下命令。 將其視為“所有命令都必須成功”。 如果第一個失敗,則您已經迷路了,不必檢查以下內容。

我認為,此解決方案比公認的答案更干凈,更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM