use*_*407 0 command-line bash error-handling
例如,我有.gitconfig
一个项目,因为我做了很多代码审查,内容如下:
review = "!f(){ git checkout master && git pull origin master && git branch -D $1 && git fetch && git checkout $1 && git pull origin $1 && bundle install && rake db:migrate && git checkout -f; };f"
Run Code Online (Sandbox Code Playgroud)
现在我知道这有点矫枉过正,我不需要它,但我喜欢那样。这让我觉得审查分支完全干净。有时候看到留言真好Already up-to-date.
现在,当分支尚不存在时,git branch -D $1
它将失败并抛出错误并且不运行其余命令。
即使其中一个命令失败,有没有办法让其余命令运行?
这就是重点&&
- 在运行下一个命令之前确保上一个命令成功。如果不需要,请;
改用。以下将回显foo
:
false; echo foo
Run Code Online (Sandbox Code Playgroud)
而以下不会:
false && echo foo
Run Code Online (Sandbox Code Playgroud)
请参阅 Bash 手册,命令列表部分:
以“
;
”分隔的命令按顺序执行;shell 依次等待每个命令终止。返回状态是最后执行的命令的退出状态。AND 和 OR 列表是一个或多个管道的序列,分别由控制运算符“
&&
”和“||
”分隔。AND 和 OR 列表以左结合性执行。AND 列表具有以下形式
Run Code Online (Sandbox Code Playgroud)command1 && command2
command2
当且仅当command1
返回退出状态为零时才执行。OR 列表具有以下形式
Run Code Online (Sandbox Code Playgroud)command1 || command2
command2
当且仅当command1
返回非零退出状态时才执行。
归档时间: |
|
查看次数: |
81 次 |
最近记录: |