用于生成和执行命令的Bash脚本

时间:2015-05-23 01:58:55

标签: linux bash expect

我正在尝试创建一个bash脚本来ssh到一个会话并运行一个命令然后退出会话。目前这是我到目前为止:

#!/usr/bin/expect -f

spawn ssh root@sc
expect "assword:"
send "password\r"
expect "#"
send "cd /data2/someDirectory\r"------> don't see this command being executed

和输出

[user@San ddb]$ test1
spawn ssh root@sc
root@sc's password:
SC02 RH 7.3 (0000009B 02.11.0.1)
[root@sc /]# [user@san1 ddb]$
[user@san1 ddb]$

所以我的问题是为什么目录不是设置为myDirectory而且它只是退出会话?

2 个答案:

答案 0 :(得分:3)

您的DaemonRunner脚本正在执行您想要的操作,但在作业expect完成后正在退出。

设定一些"期望"比如脚本末尾的send并尝试。

expect "$"

答案 1 :(得分:0)

你不需要期望:

ssh root@host 'cd /tmp; touch afile'

对于无密码操作,请设置ssh密钥。这是一个不错的教程:http://support.suso.com/supki/SSH_Tutorial_for_Linux