簡単なexpect
スクリプト ( simple.exp
) があるとします。
set command "ls -l somedir"
spawn $command
interact
expect
このスクリプトを実行すると、ls -l (スペースを含む文字列全体) が ls をコマンドとして扱い、-l をオプションとして扱うのではなく、コマンドとして扱われるため、エラーが発生します。
expect -f simple.exp
spawn ls -l
couldn't execute "ls -l somedir": no such file or directory
while executing
"spawn $command"
(file "simple.exp" line 2)
私が望むのは、bash
最初に文字列を処理し、それを個別の引数に分割してコマンドを開始するのと同様の動作です。
bash -c "ls -l somedir"
簡単にするために、変数command
はスクリプトにハードコーディングされていることに注意してください。実際のスクリプトでは、引数 (任意のコマンド ライン文字列) として提供されます。