如何让 expect 和 bash 共存

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

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

[@gxuweg3app01 my]$ vi test.sh 

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

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

打完收工!

如何让 expect 和 bash 共存

Leave a Reply

Your email address will not be published. Required fields are marked *