Como passar comando para programa aberto em shell?

Como passar comando para programa aberto em shell?

Estou escrevendo um script de shell para implantar automaticamente um programa com Jboss-cli, no Linux Ubuntu. Preciso abrir a interface jboss cli e executar alguns comandos, mas quero fazer isso automaticamente. o que isso parece

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

a linha acima abre a linha de comando do jboss. Gostaria de poder enviar um comando para o programa aberto como: undeploy FlcErp.ear

Tentei fazer eco e fornecer texto direto, mas nada será executado até que o programa Jboss termine de ser executado.

Eu também tentei ./jboss-cli.sh --connect undeploy "FlcErp.ear", mas lê "FlcErp.ear"como um comando

Responder1

Se jboss-cli.shler a partir da entrada padrão, você poderá canalizar o comando para ela:

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

Para executar vários comandos, você pode usar vários echocomandos.

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

mas um documento aqui geralmente é mais fácil:

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

informação relacionada