分页: 1 / 2

启动时脚本错误:expect not found

发表于 : 2012-01-17 13:13
3dworld
请大家帮忙看看,问题出在哪里?
我写了一个脚本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
===========================

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

发表于 : 2012-01-17 13:15
eexpress
安装 expect

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

发表于 : 2012-01-17 13:18
灰色小狼
ee.sh
:em20

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

发表于 : 2012-01-17 13:21
3dworld
怎么引用ee.sh,
我也是刚接触expect命令,能否讲的详细点

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

发表于 : 2012-01-17 13:21
aerofox
你的 expect 不是用软件包管理程序安装的吧?
在脚本开头设置一下 PATH,或者使用 expect 程序的完整路径试一试。

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

发表于 : 2012-01-17 13:31
3dworld
aerofox 写了:你的 expect 不是用软件包管理程序安装的吧?
在脚本开头设置一下 PATH,或者使用 expect 程序的完整路径试一试。
----------------------
谢谢!
刚刚试的完整路径,同样的提示。
我试一下设置PATH
是这样吗?
set PATH=/usr/local/bin/expect

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

发表于 : 2012-01-17 13:34
3dworld
补充回复5楼
我不是通过软件包安装的,是通过make命令等安装的

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

发表于 : 2012-01-17 13:38
枫叶饭团
开头应该是#!/usr/bin/expect 而不是#!/bin/bash

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

发表于 : 2012-01-17 13:39
月下叹逍遥
灰色小狼 写了:
ee.sh
:em20
:em04

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

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

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

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

发表于 : 2012-01-17 14:15
3dworld
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后,定义的函数也不能用了,

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

发表于 : 2012-01-17 14:28
枫叶饭团
PATH=$PATH:/usr/bin/
如果不行,我就觉得expect是不是不能这样子用

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

发表于 : 2012-01-17 14:41
JiangHui
第一行是#!/bin/sh应该没错,heredoc语法,让expect执行end之前的语句

说找不到很明显就是路径不在$PATH下,你把路径写全了就不用到$PATH下找

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

发表于 : 2012-01-17 23:30
tusooa
建议把<< eof 的eof加引号。防止变量扩展。

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

发表于 : 2012-01-18 8:36
aerofox
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
这种方式执行的?(. 后没有空格)。