testing - 期望脚本中的通配符不起作用

标签 testing expect

我成功运行了以下脚本。但是,如果我尝试使用通配符复制多个文件,它会抛出一个错误,提示“没有这样的文件或目录”。

此代码有效:

#!/usr/bin/expect -f
spawn scp file1.txt root@192.168.1.156:/temp1/.
expect "password:"
send "iamroot\r"
expect "*\r"
expect "\r"

以下不起作用:

#!/usr/bin/expect -f
spawn scp * root@192.168.1.156:/temp/. #fails here
….

最佳答案

* 通常由 shell (bash) 扩展,但在这种情况下,您的 shell 是 expect。我怀疑 expect 没有扩展 *

尝试:

spawn bash -c 'scp * root@192.168.1.156:/temp/.'

解释:

#!/usr/bin/expect -f
spawn echo *
expect "*"

spawn bash -c 'echo *'
expect "file1 file2…"

关于testing - 期望脚本中的通配符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092667/

相关文章:

python - 在 python 中执行 bash 脚本

bash - 如何将变量从 shell 脚本传递到 expect 脚本?

c++ - 如何在 Linux 上从 C++ 中使用 libexpect 创建的 FILE* 读取标准输出?

linux - Bash 脚本、Expect 和与远程 CLI 的接口(interface)

java - Appium 无法在 iOS 8.4 上滚动

python - PyTest:测试if语句中调用了哪个函数

testing - 如何在微服务上进行渗透测试/安全测试?

pdf - 查找用于文本提取的测试 PDF?

java - Jersey 测试框架 - 为 grizzly 中的所有未知路径定义默认错误响应

tcl - 如何匹配右括号后的冒号