シェルスクリプトでは0がtrue扱い
shellにおいてif <COMMAND>; thenのような条件分岐で GPT-4.icon
シェルスクリプトにおいて、if 文はコマンドの終了ステータスが 0 のときに真(true)とみなされ、if ブロック内のコードが実行されます。逆に、終了ステータスが 0 以外(通常は 1)の場合、偽(false)とみなされ、else ブロック内のコードが実行されます。
これはシェルスクリプト特有の動作であり、他の多くのプログラミング言語(例えばCやPython)とは異なります。
code:zsh
# 存在するブランチをチェック
# git show-ref --quiet refs/heads/main はブランチがあれば0を返す。
if git show-ref --quiet refs/heads/main; then
echo "Branch 'main' exists."
else
echo "Branch 'main' does not exist."
fi