【问题标题】:How to pass star char in expect spawn?如何在期望产卵中传递星形字符?
【发布时间】:2017-08-12 02:49:37
【问题描述】:

我想像ls * 一样跑步,所以我尝试了

expect -c 'spawn ls *;expect eof;'
expect -c 'spawn ls {*};expect eof;'

但没有一个工作。

我的问题是如何在 spawn 中传递 * char?

谢谢!

【问题讨论】:

  • 您的两个命令都完全等同于 shell 中的 ls '*':它们将 * 传递给 ls,而不是将其视为将文件名放在命令行上的指令。所以你真正想要的是将星号传递给ls

标签: bash escaping tcl expect


【解决方案1】:

spawn 本身不会调用 shell,而是直接调用您告诉它运行的命令。因此,通常由 shell 执行的操作(例如用文件名列表替换 glob 表达式,例如 *)不会发生。

下面的ls * 由一个shell 运行,这样shell 就可以执行你想要的全局扩展:

expect -c 'spawn sh -c {ls *}; expect eof;'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多