酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

ssh 远程服务器执行多条命令,遇到错误命令直接退出,不继续执行

在使用SSH远程服务器执行多条命令时,如果遇到错误的命令,通常会立即停止执行后续命令。这是因为SSH默认的行为是逐行执行命令,并且如果前一条命令失败,它不会尝试执行下一条命令。这是为了确保命令的可靠性,防止因为某个命令失败导致整个脚本或任务出错。 如果你希望即使一个命令失败,其他命令仍然可以继续执行,你可以使用`set -e`或者`set -o errexit`(在bash shell中)来启用命令终止。这样,一旦一个命令返回非零退出状态,整个脚本就会立即终止。 另一个方法是使用`&&`或`||`来组合命令,这样只有当前一个命令成功执行后才会执行下一个命令,或者当前一个命令失败时才执行下一个命令: ```bash ssh user@server "command1 && command2 || command3" ``` 在这个例子中,如果`command1`成功执行,`command2`将被执行;如果`command1`失败,`command3`将被执行。 如果你想在命令级别控制错误处理,你可以在每个命令后面添加`>/dev/null 2>&1`,这样即使命令失败,也不会打印错误信息到标准输出和标准错误。这不会改变命令的退出状态,所以`set -e`仍然会起作用。 [2024-05-23 10:29:16 | AI写代码神器 | 282点数解答]

相关提问