期望:无法执行“/usr/bin/zypper patch”:没有这样的文件或目录

Posted

技术标签:

【中文标题】期望:无法执行“/usr/bin/zypper patch”:没有这样的文件或目录【英文标题】:expect: couldn't execute "/usr/bin/zypper patch": no such file or directory 【发布时间】:2020-08-26 16:57:02 【问题描述】:

我写了一个期望脚本

vi /foo/force-zypper-patch.exp
cat /foo/force-zypper-patch.exp
#!/usr/bin/expect

set timeout 300
spawn "/usr/bin/zypper patch"
expect "Continue? [y/n/...? shows all options] (y): "  send "y\r" 
interact

但即使我有完整路径的 zypper,它也会失败:

SERVER1:~ # ssh SERVER2 "/usr/bin/expect -f /foo/force-zypper-patch.exp"
spawn /usr/bin/zypper patch
couldn't execute "/usr/bin/zypper patch": no such file or directory
    while executing
"spawn "/usr/bin/zypper patch""
    (file "/foo/force-zypper-patch.exp" line 4)
SERVER1:~ #
SERVER1:~ # ssh SERVER2 "which zypper"
/usr/bin/zypper
SERVER1:~ #

虽然我可以使用“zypper patch -y --with-interactive”来达到我的目的,但我真的很感兴趣,期待如何做到这一点!

【问题讨论】:

【参考方案1】:

只需从spawn 行中删除引号。

spawn /usr/bin/zypper patch

目前,您正在尝试在/usr/bin目录下执行命令zypper patch,显然不存在这样的文件。

【讨论】:

以上是关于期望:无法执行“/usr/bin/zypper patch”:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

Bash 和期望:无法通过 telnet 重新启动路由器

v-for 范围期望一个整数值但得到 NaN

无法在 bash 脚本期望中发送长命令

SQL - 连接两个表时无法执行不同的计数

期望包含的属性名称... ||无法打开json文件

Chai 断言,无法使用应该/期望来识别属性