执行“package require Expect”时找不到软件包 Expect

执行“package require Expect”时找不到软件包 Expect

我想对一个简单的 .sh 文件使用 autoexpect 但是终端显示此错误:

can't find package Expect
    while executing
"package require Expect"
    (file "/usr/bin/autoexpect" line 6)

我的终端命令是:

autoexpect shell.sh

我删除了 Expect 并再次安装它,但与过去没有什么区别!

谁能帮我?

已经是最新版本

这是的输出dpkg -l | grep tcl; which tclsh; which tclsh8.6; dpkg -S Expect; echo $PATH。Anaconda 是否与预期相矛盾?

安装,anaconda 路径

答案1

您必须安装主 Expect包裹经过

sudo apt-add-repository universe
sudo apt-get install expect

它将tcl-expect作为依赖项为您安装。

为了运行 Expect 脚本以避免 Anaconda 出现问题,您必须手动指定 PATH 变量,然后运行 ​​expect/tcl 脚本:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
autoexpect ./shell.sh

或者在一行中:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin autoexpect ./shell.sh

为了简化每个 autoexpect 命令的执行,您可以向其添加以下别名~/.bashrc

alias autoexpect='PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin autoexpect'

答案2

当使用conda的时候,conda自带的expect会覆盖原有的expect命令,造成冲突。

解决方案:

重新安装 expect 命令

conda install -c eumetsat expect

再次使用unbuffer时,就恢复正常了。

相关内容