シェルで開いているプログラムにコマンドを渡すにはどうすればいいですか?

シェルで開いているプログラムにコマンドを渡すにはどうすればいいですか?

Linux UbuntuでJboss-cliを使用してプログラムを自動デプロイするためのシェルスクリプトを書いています。jboss cliインターフェースを開いていくつかのコマンドを実行する必要がありますが、これを自動的に行いたいです。

cd /opt/jboss/bin
./jboss-cli.sh --connect

上記の行は、jboss コマンドラインを開きます。次のようなコマンドを open プログラムに送信できるようにしたいと思います。 undeploy FlcErp.ear

これをエコーし​​て直接テキストにしようとしましたが、Jboss プログラムの実行が完了するまで何も実行されません。

私も試してみましたが、コマンドとして./jboss-cli.sh --connect undeploy "FlcErp.ear"読み込まれます"FlcErp.ear"

答え1

標準入力から読み取る場合はjboss-cli.sh、コマンドをパイプで渡すことができます。

echo 'undeploy FlcErp.ear' | ./jboss-cli.sh --connect

複数のコマンドを実行するには、複数のコマンドを使用できますecho

{ echo 'undeploy FlcErp.ear'; echo 'other gommands'; echo 'go here'; } | ./jboss-cli.sh --connect

しかし、ヒアドキュメントの方が通常は簡単です:

./jboss-cli.sh --connect <<EOF
undeploy FlcErp.ear
other commands
go here
EOF

関連情報