我想做类似的事情:
if [[ git status &> /dev/null ]]; then
echo "is a git repo";
else
echo "is not a git repo";
fi
除了我不知道如何检查退出状态。我该如何解决这个问题?
由于
答案 0 :(得分:17)
就像那样
if git status &> /dev/null
then
echo "is a git repo";
else
echo "is not a git repo";
fi
或者以更紧凑的形式:
git status &> /dev/null && echo "is a git repo" || echo "is not a git repo"
答案 1 :(得分:11)
使用$?
,它包含最后一个命令返回代码
编辑:精确的例子:
git status >& /dev/null
if [ $? -eq 0 ]; then
echo "git status exited successfully"
else
echo "git status exited with error code"
fi
答案 2 :(得分:0)
我经常使用的另一种形式如下:
git status &> /dev/null
if (( $? )) then
...
这比接受的答案稍微紧凑,但它并不要求你把命令放在与gregseth的答案相同的行上(有时你想要的,但有时候变得难以阅读)。
双括号用于zsh中的数学表达式。 (例如,请参阅here。)