1

コマンドラインプログラムがあり、Expectを使用してそのプログラムとの対話を自動化しようとしています。プログラムは、ビルドファイルでコマンド「antrunco​​nsole」を実行することによって起動されます。

また、Expectスクリプトをbashスクリプトに埋め込みました。現在、私のコードは次のようになっています。

#!/bin/bash

cd $HOME/myProj/build

/usr/bin/expect - << EndMark

spawn ant runconsole

EndMark

exit 0

これをビルドすると、spawnantrunco​​nsoleがターミナルに出力されます。また、「ant runco​​nsole」を引用符で囲むと、「「antrunco​​nsole」を実行できませんでした。「spawn」「antrunco​​nsole」の実行中にそのようなファイルまたはディレクトリはありません」が返されます。

Expectを使用するのはこれが初めてなので、これは本当にお粗末な質問だと確信していますが、オンラインで解決策を見つけることができませんでした。助けていただければ幸いです。

4

1 に答える 1

1

そこで起こっていることは、AntとのExpectセッションを作成しているが、Antと対話していないため、Antが終了することです。

このようにスクリプトを少し変更することができます:

/usr/bin/expect - << EndMark
spawn ant -v runconsole
expect
EndMark

それを実行すると、Antからの出力が返されるはずです。Expectスクリプトの設定方法、およびAntとの相互作用については、spawnwikiページまたはExpectmanページを参照してください。

于 2012-08-21T22:58:06.583 に答える