2017-08-12 80 views
1

我想運行像ls *所以我試圖如何通過星期字預期產卵?

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

,但沒有工作。

我的問題是如何通過*字符中重生?

THX!

+1

目前您的命令完全等同於'LS「*」'殼:

下已經ls *由外殼,使得外殼可以執行水珠擴展你打算運行:他們將'*'傳遞給'ls',而不是將其視爲一條將命名行放在命令行上的指令。所以你真正想要的是**而不是**將星號傳遞給'ls'。 –

回答

6

spawn沒有,對自己,調用一個shell,而是直接調用你告訴它要運行的命令。因此,通常由shell執行的操作(例如用文件名列表替換glob表達式,例如*)不會發生。

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