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

在服务器上使用通过就给分
2024-12-16 16:11:36
推荐回答(2个)
回答1:

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命令
!
为防止错误,建议都顶格写,前面不要留空格。

回答2:

首先你在命令行执行env expect,看expect能不能用,如果不能用,那么你需要找到expect执行文件路径,加入到PATH环境变量中去。

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

$cat 1.sh
#!/bin/sh
output=`expect <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!