我正在尝试使用ssh在远程主机上执行命令。在这里,我需要捕获远程主机上远程命令的退出代码,同时需要捕获ssh命令的退出代码。如何从同一命令中同时捕获本地和远程shell变量?
基本上,要求是:
ssh user@remotehost "/etc/stop_database; echo $?"根据我的ssh命令的返回码,我需要执行一些操作。
if [ $? -ne 0 ]; then
echo ssh failed
else
echo ssh success
fi同样基于该主机中远程命令的退出代码,我需要执行以下操作:
if database_stopped; then
echo DB stopped successfully
else
echo Unable to stop DB
fi发布于 2020-05-27 02:57:37
假设stop_database不产生任何输出或被重定向,远程echo $?可以被捕获到脚本变量并访问ssh退出代码;在这个模拟示例中,"ssh yadda ..."被替换为本地内容:
#!/bin/bash
rmt_sd=$(echo 23; exit 46)
ssh_ec=$?
echo rmt_sd $rmt_sd, ssh_ec $ssh_echttps://stackoverflow.com/questions/62025295
复制相似问题