1

私は非常に制限されたインターフェイスを持つプログラムを持っています (以前に取り組んだフェローによって適切に開発されていません)。それは建設中の研究プロトタイプであるため、公に名前を付けることを許可されているかどうかわかりません。それをプログラムと呼びましょう。×

execute command を書き込むときに適切な環境変数をエクスポートした後x、端末プロンプトが次のように変わりますx(たとえば、mysql と入力したときに起こることと同様です)。

ここで、プログラムを実行する前にいくつかの準備作業を行う必要がxあり、このプログラムが本来の目的を果たした後、クリーンアップと再配置を行う必要があります。さらに、 の環境でいくつかのコマンドを実行する必要がありますx

コードを作成し、ターミナルに貼り付けると問題なく動作しますが、シェル スクリプトと同じコードを実行すると x が実行され、次のコマンドは実行されません。そのための回避策はありますか。

これを行う方法が完全に混乱しています。どんな助けでも大歓迎です。私が十分に明確にしておらず、さらに情報が必要な場合はお知らせください。

4

2 に答える 2

1

あなたはExpectを調べる必要があります。それはあなたのために反復的なタスクを自動化することができます。

あなたがそれを調べれば、これはあなたが必要とするものに似ているかもしれません:

#!/usr/bin/expect
spawn bash
set fp [open cmdlist r]
while {[gets $fp line] != -1} {
  expect "\\$"
  send "$line\r"
}
于 2012-08-15T01:37:08.937 に答える
0

いいえ。x実行するコマンドを指定できる場合、またはx標準入力を介してコマンドを供給した後に対話モードにドロップする方法がある場合は、それらのいずれかを使用できます。他の方法を試すことは、信頼できない可能性があります。

于 2012-08-14T19:56:45.180 に答える