shell - 如何在 shell 脚本中捕获本地和远程 shell 变量
问题描述
我正在尝试使用 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
解决方案
如果 stop_database 不产生任何输出或被重定向,则echo $?
可以将远程捕获到脚本 var 并访问 ssh 退出代码;在此模拟示例中,"ssh yadda ..."
替换为本地内容:
#!/bin/bash
rmt_sd=$(echo 23; exit 46)
ssh_ec=$?
echo rmt_sd $rmt_sd, ssh_ec $ssh_ec
推荐阅读
- java - JVM 堆问题
- javascript - JSON文件中的搜索和返回算法
- python - 如何在短时间内制作矩阵(9 * 9)
- flutter - Flutter:通过 Navigator.Push 传递多个数据,然后将数据弹回
- css - CSS 网格:无效的属性值
- javascript - 使用带有故事书的 svg-spritemap-webpack-plugin
- android - 如何使我的代码适用于所有屏幕尺寸?
- google-apps-script - 使用谷歌应用脚本构建实时仪表板
- single-sign-on - 我无法为 Dropbox Business 设置自定义 SSO
- r - 将闪亮的数据框保存到 Postgresql 数据库