パラメータ化された値を持つ対話型プログラム/ユーティリティ内で一連のコマンドを実行する必要があります。 heredocの内部をループする方法はありますか?以下のように.. eval
がここに助けてもらえないのかどうかわかりません。以下の例は、インタラクティブがシステムコマンドを認識しないように見えるため、動作しないようです。代わりにutilityExecutable
にヒアドキュメントを渡すシェルスクリプト内の "heredoc"内のループ
#!/bin/sh
list="OBJECT1 OBJECT2 OBJECT3"
utilityExecutable << EOF
for i in $list ; do
utilityCommand $i
done
EOF
よく、ヘレドックはサブシェルです。それはうまくいくかもしれませんが、通常あなたが望むものは(私があなたが発見したと思うように)うまくいかないでしょう。あなたの例が理論的であれば、私は答えることができるのは理論的にはforループが外側にあるようにコードを修正することが可能であるかもしれないということです。 "wrapped-around" 'utilityExecutable'。 Qで実際のコマンドを使用すれば、より簡単に手助けできます。がんばろう。 – shellter
私は、あなたがしようとしていることをよりよく説明する必要があると思います。 'utilityExecutable'に一連の入力行を送りたいのですか? – rici
@rici、yesすべてのコマンドが終了するまでユーティリティを終了せずに、utilityExecutableの中で一連のコマンドを送信/実行する必要があります。これはまだheredocを使って可能ですか? – Kevin