如果前一个命令在 SSH、shell 中有效,则仅启动该命令

如果前一个命令在 SSH、shell 中有效,则仅启动该命令

我有一个 SHELL 脚本,它使用管道分隔两个命令:

ssh -oBatchMode=yes user@hostname "mysql -u yop -pyop -c yop | echo test"

问题是,即使我与 MySQL 的连接不起作用,它也会执行echo test。如果前一个命令不起作用,我想禁止我的脚本执行任何命令。

我寻找解决方案if但却想不出任何办法。

答案1

ssh -oBatchMode=yes user@hostname "mysql -u yop -pyop -c yop && echo test"

当且仅当第一个命令成功时,操作&&符才会执行第二个命令。你可以将其读作“然后”。

顺便说一句,如果您只想按顺序执行命令,则可以使用分号;,如cmd1; cmd2。管道|并行运行两个命令,第一个命令的标准输出连接到第二个命令的标准输入。在这种情况下,这根本不是您想要的。

相关内容