2

How can I modified this script to conditionally execute ${deleteOldBranchRemote} when there is no error executing ${getRename}?

Now_hourly=$(date +%d%b%H%M)
#echo "$Now_hourly"

newrcName="rc$Now_hourly"
#rename rc to the new name
getRename="git branch -m $newrcName"
#Delete the old-name remote branch
deleteOldBranchRemote="git push origin --delete rc"
${getRename}
#if getRename has error then do not execute the following line
#if [ $noErrorSomehowIneedToCheckForErrors ]
  #then
    ${deleteOldBranchRemote}
#fi

1 Answer 1

3

You can write it like this:

if git branch -m $newrcName; then
    git push origin --delete rc
fi

So the second command is only executed when the first command finishes with an exit code of 0 which indicates success.

You can get more info about the if keyword by running help if. Example output from my system (Bash 4.3.46(1)-release):

if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
Execute commands based on conditional.

The `if COMMANDS' list is executed.  If its exit status is zero, then the
`then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is
executed in turn, and if its exit status is zero, the corresponding
`then COMMANDS' list is executed and the if command completes.  Otherwise,
the `else COMMANDS' list is executed, if present.  The exit status of the
entire construct is the exit status of the last command executed, or zero
if no condition tested true.

Exit Status:
Returns the status of the last command executed.

If you want to know the error code you can read it from $?. Bash stores the exit code of the last executed command in this variable. You can store it in a variable to use it later:

git branch -m $newrcName
BRANCH_EXIT_CODE=$?
echo "git branch -m $newrcName exit code was $BRANCH_EXIT_CODE"
# $? now contains the exit code of the preceding echo
if [ $BRANCH_EXIT_CODE -eq 0 ]; then
    git push origin --delete rc
fi

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .