【发布时间】:2013-10-11 20:57:18
【问题描述】:
我正在尝试编写一个 shell 脚本,该脚本将运行一个命令来 ssh 到多台机器并将输出存储在一个变量中并通过电子邮件将其作为报告发送。这是我目前在脚本中的内容:
#!/bin/bash
DcEmitterConn='yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc"'
SUBJECT="DC-Connections"
EMAIL="abc@abc.com"
EMAILMESSAGE="report.out"
echo $DcEmitterConn> $EMAILMESSAGE
#send email using /bin/mail
/bin/mail -s "$SUBJECT" "$EMAIL"< $EMAILMESSAGE
在脚本中执行上述命令后,它会要求我输入密码,然后打印请求的输出。我在上述脚本中面临的问题是我无法将命令输出存储在变量中并将其打印在电子邮件正文中。如果我遗漏了什么,有人可以告诉我。
输出看起来像这样:
abc@dh1.data.ac2.abc.com's password: (yinst-pw)
40 240 3560
abc@dh2.data.ac2.abc.com's password: (supplied by yinst-pw)
50 300 4450
提前致谢!
【问题讨论】:
-
我试过了..它对我不起作用。
-
要在 var 中输出,您应该使用此语法
var=$(code),在您的情况下为DcEmitterConn=$(yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc")