首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在shell脚本中捕获本地和远程shell变量

如何在shell脚本中捕获本地和远程shell变量
EN

Stack Overflow用户
提问于 2020-05-26 23:07:59
回答 1查看 23关注 0票数 0

我正在尝试使用ssh在远程主机上执行命令。在这里,我需要捕获远程主机上远程命令的退出代码,同时需要捕获ssh命令的退出代码。如何从同一命令中同时捕获本地和远程shell变量?

基本上,要求是:

代码语言:javascript
复制
ssh user@remotehost "/etc/stop_database; echo $?"

根据我的ssh命令的返回码,我需要执行一些操作。

代码语言:javascript
复制
if [ $? -ne 0 ]; then
echo ssh failed
else
echo ssh success
fi

同样基于该主机中远程命令的退出代码,我需要执行以下操作:

代码语言:javascript
复制
if database_stopped; then
echo DB stopped successfully
else
echo Unable to stop DB
fi
EN

回答 1

Stack Overflow用户

发布于 2020-05-27 02:57:37

假设stop_database不产生任何输出或被重定向,远程echo $?可以被捕获到脚本变量并访问ssh退出代码;在这个模拟示例中,"ssh yadda ..."被替换为本地内容:

代码语言:javascript
复制
#!/bin/bash

rmt_sd=$(echo 23; exit 46)
ssh_ec=$?

echo rmt_sd $rmt_sd, ssh_ec $ssh_ec
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62025295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档