如何让 expect 和 bash 共存

在编写脚本时,为了安全地在主机间执行命令,很多人都用上了 expect 命令(其实也算不上十分安全,但总比打通 ssh 免密码登录要好点)。在编写脚本中, #!/usr/bin/expect#!/bin/bash 无法同时定义,全程用 expect 又觉得无比麻烦。所以很多操作都需要写两个脚本,一个 expect 用于远程操作,一个 bash 用于过滤信息及进行后续操作。

其实使用一个 expect 参数就可以让两种命令共存了。

[nagios@gxuweg3app01 my]$ vi test.sh

#!/bin/bash
expect -c "set timeout 2
                spawn ssh pausr01@gxuweg3app08
                expect password:
                send Finder\r
                expect ]*
                send echo good!\r
                expect ]*
                send exit\r
"|grep good
~
"test.sh" 10L, 199C written

[nagios@gxuweg3app01 my]$ ./test.sh
pausr01@gxuweg3app08:/uniiof/users/pausr01>echo good!
good!
[nagios@gxuweg3app01 my]$

打完收工!

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息