使用命令的输出作为退出代码

Sve*_* R. 6 bash git exit-code

对于我的持续集成脚本,我想检查 git 分支是否与 master 分支不同步。因此我使用

git rev-list --left-right --count master...my-branch-name
Run Code Online (Sandbox Code Playgroud)

它会返回…… 喜欢

1    3
Run Code Online (Sandbox Code Playgroud)

(3次提交在master之前,1次在后面)

添加| cut -f1只会给我第一个数字(在主人后面提交)。

现在我想用那个数字退出脚本,因为后面的 0 个提交是成功的,所有其他的都应该给出一个错误。

我怎样才能做到这一点?我试过

exit 'git rev-list --left-right --count master...my-branch-name | cut -f1'
Run Code Online (Sandbox Code Playgroud)

但这会引起

/bin/bash: line 66: exit: git rev-list --left-right --count master...my-branch-name | cut -f1:需要数字参数

是否有最佳实践?

nKn*_*nKn 5

只需更改您的线路:

exit 'git rev-list --left-right --count master...my-branch-name | cut -f1'
Run Code Online (Sandbox Code Playgroud)

到:

exit `git rev-list --left-right --count master...my-branch-name | cut -f1`
Run Code Online (Sandbox Code Playgroud)

`引号之间的任何内容都将被执行并返回到 bash 脚本,因此您可以对它执行任何操作,包括将其分配给变量。

  • 使用 `$(...)` 代替反引号:更容易看出区别。 (4认同)