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

Mil*_*lad 5 command-line bash gnome-terminal expect

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

can't find package Expect
    while executing
"package require Expect"
    (file "/usr/bin/autoexpect" line 6)
Run Code Online (Sandbox Code Playgroud)

我的终端命令是:

autoexpect shell.sh
Run Code Online (Sandbox Code Playgroud)

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

谁能帮我?

已经是最新版本了

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

安装,anaconda路径

N0r*_*ert 6

您必须通过以下方式安装主要的 Expect

sudo apt-add-repository universe
sudo apt-get install expect
Run Code Online (Sandbox Code Playgroud)

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

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

sudo apt-add-repository universe
sudo apt-get install expect
Run Code Online (Sandbox Code Playgroud)

或一行:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
autoexpect ./shell.sh
Run Code Online (Sandbox Code Playgroud)

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

alias autoexpect='PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin autoexpect'
Run Code Online (Sandbox Code Playgroud)