我想通过 SSH 一个接一个地执行两个命令。我没有交互式外壳。第二个命令应该只在第一个命令成功时执行,但该行在脚本中,所以如果第二个命令无法以这种方式执行,我想要一些用户友好的反馈。在那之后,脚本的其余部分应该继续执行,所以exit
这里不是一个选项。
我知道我可以使用布尔运算符&&
,例如foo && bar
防止bar
在foo
失败时执行,并且仅在失败时bar || baz
执行。但是,我对这些如何相互配合感到有些困惑。baz
bar
把它们加起来:
(通过 SSH 执行,无需交互式 shell)
foo
bar
仅在foo
成功时执行baz
仅当foo
出现故障并防止执行bar
ssh user@host "foo && bar || baz"
这是做我刚刚描述的事情的正确方法吗?
jor*_*anm 14
使用您的示例foo && bar || baz
将执行baz
ifbar
或 foo
failed。根据您的描述,这不是您想要的。您可以使用以下if
语句来实现您的目标:
if foo; then
bar
else
baz
fi
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望在一行中使用它:
if foo; then bar; else baz; fi
Run Code Online (Sandbox Code Playgroud)