首先要确定你的expect脚本是正常的,直接expect 脚本名 执行 能成功,放在sh脚本中调用就肯定没得问题,而且调用expect脚本可以和普通shell脚本结合使用, 还有一个好处就是sh脚本 可以依次调用很多个expect脚本,比如我,每天有5个expect脚本要运行,和删除某目录下大于7天的文件,我就可以全部放在一个sh脚本中,只允许一个sh脚本就可以全部实现了!下面是部分代码示例:
[root@node-2 ~]# cat ip.sh
#!/bin/bash
#调用交互式脚本
expect ip1.sh
sleep 1
echo -e “\n”
echo -e “\033[31m 正在写入df -h信息到 /teamsun/disk/date +%Y%m%d
,请稍等 \033[0m”
echo -e “\n”
#跑一次脚本则自动吧当天df -h全部情况写入到该日期文件中
expect ip1.sh > /teamsun/disk/date +%Y%m%d
sleep 1
#只保留7天的信息,超过7天的 自动删除df信息。
find /teamsun/disk/* -mtime +6 -name “*” -exec rm -rf {} ;
echo -e “\033[31m /teamsun/disk/ 超过7天的文件已删除 \033[0m”
sleep 1
================