如何將指令傳遞給在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

相關內容