如何将命令传递给在shell中打开的程序?

如何将命令传递给在shell中打开的程序?

我正在编写一个 shell 脚本,以便在 linux ubuntu 中使用 Jboss-cli 自动部署程序。我需要打开 jboss cli 界面并执行一些命令,但我想自动执行此操作。它看起来像什么

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

上面一行打开jboss命令行。我希望能够向打开的程序发送命令,例如: 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

相关内容