
Ich schreibe ein Shell-Skript, um ein Programm mit Jboss-cli unter Linux Ubuntu automatisch bereitzustellen. Ich muss die Jboss-CLI-Schnittstelle öffnen und einige Befehle ausführen, aber ich möchte dies automatisch tun. So sieht es aus
cd /opt/jboss/bin
./jboss-cli.sh --connect
die obige Zeile öffnet die JBoss-Befehlszeile. Ich möchte in der Lage sein, einen Befehl an das geöffnete Programm zu senden, wie:
undeploy FlcErp.ear
Ich habe versucht, es wiederzugeben und reinen Text einzugeben, aber nichts wird ausgeführt, bis das Jboss-Programm fertig ist.
Ich habe es auch versucht ./jboss-cli.sh --connect undeploy "FlcErp.ear"
, aber es liest sich "FlcErp.ear"
wie ein Befehl
Antwort1
Wenn jboss-cli.sh
von der Standardeingabe gelesen wird, können Sie den Befehl dorthin weiterleiten:
echo 'undeploy FlcErp.ear' | ./jboss-cli.sh --connect
Um mehrere Befehle auszuführen, können Sie mehrere echo
Befehle verwenden.
{ echo 'undeploy FlcErp.ear'; echo 'other gommands'; echo 'go here'; } | ./jboss-cli.sh --connect
aber ein Here-Doc ist normalerweise einfacher:
./jboss-cli.sh --connect <<EOF
undeploy FlcErp.ear
other commands
go here
EOF