2017-08-12 13 views
1

私はので、私はspawnを期待してスターのcharを渡すには?

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

を試みたが、何も作業していないls *のように実行したいです。

私の質問は、* charを生成する方法です。

Thx!

+1

どちらも、あなたのコマンドはシェルで 'lsの「*」'とまったく同じですが。 '* 'を' ls'に渡します。代わりにコマンドラインにファイル名を入れる命令として扱います。あなたが本当に望んでいるのは、アスタリスクを 'ls'に渡すのではなく**です。 –

答えて

6

spawnは、単独でシェルを起動するのではなく、実行するように指示しているコマンドを直接呼び出します。したがって、通常はシェルによって実行される操作(例えば、*のようなグロブ式をファイル名のリストで置き換える)は行われません。

次はls *シェルを使用して、予定のグロブ展開を行うことができるように、シェルによってを実行することがあります。

expect -c 'spawn sh -c {ls *}; expect eof;' 
関連する問題