在shell(#!/bin/sh)脚本中怎么使用expect命令,需要添加什么环境变量吗,正确即给分

在服务器上使用通过就给分

1、首先检查你机器上有没有expect(我知道ubuntu默认是没有安装的)
ls /usr/bin | grep expect 看看有没有装expect
2、没有的话需要安装
在ubuntu的软件安装中心,搜索tcl 和tk 和expect并安装;
也可以命令行输入sudo apt-get install tcl tk expect
3. 环境ready了后,可以在shell脚本中用Here document的方式使用expect命令
例子参见:http://zhidao.baidu.com/question/397085991.html
Here document格式如下:
expect <<!
这中间都是expect命令
!
为防止错误,建议都顶格写,前面不要留空格。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-18
首先你在命令行执行env expect,看expect能不能用,如果不能用,那么你需要找到expect执行文件路径,加入到PATH环境变量中去。

然后就可以在shell中使用了,有两种方式实现:
1.用here document
2.用expect -c

$cat 1.sh
#!/bin/sh
output=`expect <<EXP
puts "hello world"
EXP
`
echo "expect 1 output:"
echo $output
echo
echo "expect 2 output:"
expect -c 'puts "hello world!"'

$chmod 777 1.sh

$./1.sh
expect 1 output:
hello world

expect 2 output:
hello world!

在shell(#!\/bin\/sh)脚本中怎么使用expect命令,需要添加什么环境变量吗...
1、首先检查你机器上有没有expect(我知道ubuntu默认是没有安装的)ls \/usr\/bin | grep expect 看看有没有装expect 2、没有的话需要安装 在ubuntu的软件安装中心,搜索tcl 和tk 和expect并安装;也可以命令行输入sudo apt-get install tcl tk expect 3. 环境ready了后,可以在shell脚本中用Here ...

请教各位大神,shell脚本用的是#!\/bin\/bash,但是脚本中又可能要调用#...
然后在shell脚本中调用即可:!\/bin\/bash expect \/root\/shell\/login.exp $i $j

expect脚本在Linux下是如何使用的
通常,expect会在执行脚本之前,把整个脚本都读入到内存中。“-b”选项可以让expect一次只读取脚本中的一行。当你没有写完整个脚本的时候,这是十分有用的,expect可以开始执行这个不完整的脚本,并且,它可以避免把脚本写入到临时文件中。expect -b 6,让expect不解释命令行参数 你可以使用标识符让expect...

请问各位大神,如何在shell中调用expect脚本,并将刚刚在shell中处理后的...
使用变量保存处理结果,然后在调用expect !\/bin\/sh expect <<!spawn ssh xx@yyy expect "*Password*"send "xxx\\r"expect ">"send "mkdir xxxxx\\r"send "exit\\r"expect eof !

shell中 expect使用
send "pwd" 之后应该继续 expect 一个提示符,或者等待一个 timeout 的时间,然后send 一条命令 touch file1,如此继续。不考虑 expect 练习的目的的话,完全这个任务最方便的是用 sudo 代替 su,可配置 sudo 执行你这个操作时不用密码。

shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做...
!\/usr\/bin\/expect set pw pawword spawn ssh 192.168.1.200 expect 'password: 'send "$pw\\r"expect '#'send "exit\\r"expect eof chmod +x ssh.sh .\/ssh.sh 试试呢 哈哈

使用expect 的时候,怎么使用shell的命令啊?
expect 用的是 tcl 语言,你可以用 exec sleep 1 if { [file isfile certs\/cert.key] } { send_user "file existing"} else { send_user "file not existing"} 更多细节可以去学一下 tcl 语言。

expect的用法和结构 expect,,,sth \/that+从句
1. [#!\/usr\/bin\/expect]2. [set timeout 30]基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒 3. [spawn ssh -l username 192.168.1.1]spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。

shell中调用expect 我编写了一个普通用户切换到root的脚本。
在bash 中直接执行expect 应该使用 -c 选项,而不是使用重定向。expect -c 'spawn su - expect ":" { send "passwdXXXX\\n"} interact '你这种想法也算不上托裤子放屁,既然expect 提供了 -c 选项,就说名直接在bash 中调用expect 的大有人在。

详解自动交互命令expect,免去手动输入!
6. **Exit命令**:直接退出脚本,通常用于执行清理等操作。Expect程序中包含了普通变量与特殊变量:- **普通变量**:定义使用TCL语言方式,如`set user "guoke"`,然后使用`puts $user`输出变量值。- **特殊变量**:与shell脚本类似,包含如参数数组`$argv`、参数个数`$argc`等,用于接收脚本传...

相似回答