启动时脚本错误:expect not found

sh/bash/dash/ksh/zsh等Shell脚本
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

启动时脚本错误:expect not found

#1

帖子 3dworld » 2012-01-17 13:13

请大家帮忙看看,问题出在哪里?
我写了一个脚本ee.sh,目的:在启动的时候执行一段程序。

当我手动执行这个ee.sh时,可以正常的运行,自动回复config.sh的选项,并执行autorun.sh,得到结果。
但是当我通过update-rc.d ee.sh start 20 2 3 4 5 . 把ee.sh脚本连接添加到/etc/rc2.d等目录下后,重启系统。能够执行ee.sh,但是提示expect not found,然后跳过,直接执行auutorun.sh脚本

系统信息:
Ubuntu 10.04 64bit
系统上已经安装tcl和expect
也试过:把ee.sh脚本的内容写到/etc/rc.local内,提示同样的错误。
先说声谢谢了!

ee.sh脚本内容:

===========================
#!/bin/sh

expect<<-end
spawn ./config.sh
send "1\n"
send "Y\n
send "2\n"
expect eof
end

./autorun.sh
===========================
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 启动时脚本错误:expect not found

#2

帖子 eexpress » 2012-01-17 13:15

安装 expect
● 鸣学
头像
灰色小狼
帖子: 4585
注册时间: 2008-12-06 10:38
系统: Arch

Re: 启动时脚本错误:expect not found

#3

帖子 灰色小狼 » 2012-01-17 13:18

ee.sh
:em20
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

Re: 启动时脚本错误:expect not found

#4

帖子 3dworld » 2012-01-17 13:21

怎么引用ee.sh,
我也是刚接触expect命令,能否讲的详细点
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 启动时脚本错误:expect not found

#5

帖子 aerofox » 2012-01-17 13:21

你的 expect 不是用软件包管理程序安装的吧?
在脚本开头设置一下 PATH,或者使用 expect 程序的完整路径试一试。
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

Re: 启动时脚本错误:expect not found

#6

帖子 3dworld » 2012-01-17 13:31

aerofox 写了:你的 expect 不是用软件包管理程序安装的吧?
在脚本开头设置一下 PATH,或者使用 expect 程序的完整路径试一试。
----------------------
谢谢!
刚刚试的完整路径,同样的提示。
我试一下设置PATH
是这样吗?
set PATH=/usr/local/bin/expect
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

Re: 启动时脚本错误:expect not found

#7

帖子 3dworld » 2012-01-17 13:34

补充回复5楼
我不是通过软件包安装的,是通过make命令等安装的
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 启动时脚本错误:expect not found

#8

帖子 枫叶饭团 » 2012-01-17 13:38

开头应该是#!/usr/bin/expect 而不是#!/bin/bash
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: 启动时脚本错误:expect not found

#9

帖子 月下叹逍遥 » 2012-01-17 13:39

灰色小狼 写了:
ee.sh
:em20
:em04
浮生七十今三十,从此凄惶未可知
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

Re: 启动时脚本错误:expect not found

#10

帖子 3dworld » 2012-01-17 14:13

枫叶饭团 写了:开头应该是#!/usr/bin/expect 而不是#!/bin/bash
我把第一行改成#!/usr/local/bin/expect
会提示另外的错误
我在脚本设置了一个路径变量
set DST=/root/dd

错误信息:can't read "DST=/root/dd": no such variable
3dworld
帖子: 12
注册时间: 2008-12-07 14:30

Re: 启动时脚本错误:expect not found

#11

帖子 3dworld » 2012-01-17 14:15

3dworld 写了:
枫叶饭团 写了:开头应该是#!/usr/bin/expect 而不是#!/bin/bash
我把第一行改成#!/usr/local/bin/expect
会提示另外的错误
我在脚本设置了一个路径变量
set DST=/root/dd

错误信息:can't read "DST=/root/dd": no such variable

==========================
而且第一行改成/usr/local/bin/expect后,定义的函数也不能用了,
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 启动时脚本错误:expect not found

#12

帖子 枫叶饭团 » 2012-01-17 14:28

PATH=$PATH:/usr/bin/
如果不行,我就觉得expect是不是不能这样子用
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 启动时脚本错误:expect not found

#13

帖子 JiangHui » 2012-01-17 14:41

第一行是#!/bin/sh应该没错,heredoc语法,让expect执行end之前的语句

说找不到很明显就是路径不在$PATH下,你把路径写全了就不用到$PATH下找
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 启动时脚本错误:expect not found

#14

帖子 tusooa » 2012-01-17 23:30

建议把<< eof 的eof加引号。防止变量扩展。

代码: 全选

] ls -ld //
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 启动时脚本错误:expect not found

#15

帖子 aerofox » 2012-01-18 8:36

3dworld 写了:
aerofox 写了:你的 expect 不是用软件包管理程序安装的吧?
在脚本开头设置一下 PATH,或者使用 expect 程序的完整路径试一试。
----------------------
谢谢!
刚刚试的完整路径,同样的提示。
我试一下设置PATH
是这样吗?
set PATH=/usr/local/bin/expect
最好是把错误信心原封不动的贴出来,如果你使用了完整路径,错误信息不可能完全一样的,至少会有一丁点差别,比如原来是
expect not found
现在可能变成
/usr/local/bin/expect not found

开头一行没有错,出来 expect not found 这种错误只能是 PATH 的问题。
另外,确认一下,手动执行时,是不是直接

代码: 全选

./ee.sh
这种方式执行的?(. 后没有空格)。
回复