You need to enable JavaScript to run this app. 如何实现git status输出echo打印、邮件发送及远程ssh调用?
优惠活动
大模型
产品
解决方案
定价
更多

如何实现git status输出echo打印、邮件发送及远程ssh调用?

问题1:捕获git status输出并打印/发邮件

你的代码出错原因是调用变量时未加$符号,直接输出了output字符串本身,且变量未加双引号包裹会丢失换行格式,修正后的实现如下:

clear 
# 捕获git status输出到变量
output="$(git status)"
# 正确打印输出,双引号保留原始换行格式
echo "$output"
# 直接作为邮件内容发送示例(需提前配置好mailx/sendmail服务)
echo "$output" | mail -s "Git仓库状态报告" 收件人邮箱地址
问题2:SSH远程执行上述操作的实现方案

你使用的here document(<<EOF)格式需要注意转义规则,避免本地变量提前解析,推荐给EOF加单引号隔离本地与远程变量环境,完整示例如下:

# 提前定义远程连接参数
SSHUSER="远程服务器用户名"
LIVE_HOST="远程服务器IP/域名"

# 远程执行命令并捕获返回结果
remote_git_status=$(ssh "${SSHUSER}"@"${LIVE_HOST}" <<'EOF'
# 远程端先切换到目标git仓库目录
cd /远程服务器上的Git仓库绝对路径
git status
EOF
)

# 本地操作返回结果
echo "$remote_git_status"
# 发邮件示例
echo "$remote_git_status" | mail -s "远程服务器Git状态报告" 收件人邮箱地址
  • 注意项:<<'EOF'的单引号必须保留,如果你需要在远程执行块中传入本地变量,再去掉单引号,同时给需要远程解析的变量加反斜杠转义即可,比如\$var。

内容的提问来源于stack exchange,提问作者TheTom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 09:15:06