如何捕获发送输出并将输出重新发送到期望脚本中的echo语句

时间:2016-06-16 11:08:47

标签: expect send

我正在使用expect脚本,我在本地系统上执行它。

作为脚本的一部分,我必须连接到远程服务器,我必须在echo语句中打印命令的输出。

喜欢

发送" echo'服务mysql是[service mysqld status]' \ r"。

在远程系统上,我希望打印下面的输出。

服务mysql正在运行/已停止/已启动。

以下是我尝试使用的代码:

#!/usr/bin/expect -f #!/bin/bash spawn ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no root@remotehost expect "password: " send "12shroot\r" expect "#" send "echo 'service status of mysql is $[/sbin/service mysqld status]'\r" expect eof

我收到以下错误:

命令名称无效" / sbin / service"     执行时 " / sbin / service mysqld status"     从内部调用 "发送" echo包括ms的刀片数量为$ [/ sbin / service mysqld status]' \ r""

(file "/tmp/hudson3843443005004841895.sh" line 7)

构建步骤'执行shell'标记为失败 完成:失败

请帮助!!!

我尝试了expect_out(缓冲区)。但完整的控制台o / p是它的一部分。

我想知道我们是否可以使用send在远程服务器上执行命令作为echo的一部分。

先谢谢了一百万人

0 个答案:

没有答案