如何在期望产生中传递明星char?

Hen*_*nry 2 bash escaping tcl expect

我想这样跑ls *,我试过

expect -c 'spawn ls *;expect eof;'
expect -c 'spawn ls {*};expect eof;'
Run Code Online (Sandbox Code Playgroud)

但没有一个工作.

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

谢谢!

Cha*_*ffy 6

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

以下内容由shellls *运行,以便shell可以执行您想要的glob扩展:

expect -c 'spawn sh -c {ls *}; expect eof;'
Run Code Online (Sandbox Code Playgroud)