Chinaunix

标题: 为什么spawn不能执行,显示找不到spawn函数 [打印本页]

作者: billwelch    时间: 2004-10-10 10:45
标题: 为什么spawn不能执行,显示找不到spawn函数
使用的shell--bash,源代码:

#!/bin/bash

spawn ftp -i -n 10.167.13.67
expect "*Name*"
send "xyz"
expect "*Password:*"
send "xyz"
expect "*successful*"
send "put /home/guyq/AVSEQ02.DAT AVSEQ022222.DAT"
expect "*OK*"
send "bye"

输出结果:
-bash :spawn:command not found
为什么spawn不能执行,显示找不到spawn函数呢?
是要有一些特殊的设置吗?请大家帮忙
作者: 飞灰橙    时间: 2004-10-10 11:24
标题: 为什么spawn不能执行,显示找不到spawn函数
这个代码是expect的代码,
不由bash解释。
spawn可以看作expect脚本的内部函数。

第一行改成 #!/usr/bin/expect
作者: 寂寞烈火    时间: 2004-10-10 11:40
标题: 为什么spawn不能执行,显示找不到spawn函数
这是一个expect脚本,是需要用expect来解释的,就象perl,
首行一定要是#!/path/perl,python脚本,首行一定要是
#!/path/python
作者: billwelch    时间: 2004-10-10 12:02
标题: 为什么spawn不能执行,显示找不到spawn函数
第一行改成 #!/usr/bin/expect,问题解决!
谢谢各位了!你们的分析很精辟,简洁但不简单
作者: psop_sun    时间: 2013-06-03 14:47
  1. $ which expect
  2. /usr/bin/expect
  3. $ ls -l /usr/bin/expect
  4. -rwxr-xr-x 1 root root 11792 Oct 17  2011 /usr/bin/expect
  5. $ cat test.sh
  6. #!/usr/bin/expect
  7. set timeout 5
  8. spawn ssh localhost "pwd"
  9. expect "password:"
  10. send "psop2000\r"
  11. interact
  12. $ sh test.sh
  13. test.sh: line 3: spawn: command not found
  14. couldn't read file "password:": no such file or directory
  15. test.sh: line 5: send: command not found
  16. test.sh: line 6: interact: command not found
复制代码
请帮忙看看谢谢
作者: psop_sun    时间: 2013-06-03 14:50
$ rpm -qa |grep expect
expect-5.43.0-8.el5
pexpect-2.3-3.el5
expect-5.43.0-8.el5
作者: psop_sun    时间: 2013-06-03 14:54
找到原因了。
含有expect的脚本不能用bash执行,bash无法解析。添加可执行权限后,直接./your_script即可。
作者: 贫道夜探青楼    时间: 2017-09-07 18:09
那么请问,如果加if




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2