Jump to content
jamirooo

Dúvida em shell script + programa java [Resolvido]

Recommended Posts

jamirooo

Boa tarde,

O meu problema é o seguinte, tenho um pequeno programa em Shell Script (com uma linha de código) que apenas chama um programa java (neste caso um servidor que ao ser iniciado irá receber uma série de parâmetros como o porto ou o endereço do servidor LDAP a que irá ligar, entre outros...) e eu apenas queria guardar a execução do programa num ficheiro .txt, ou seja, basicamente eu fazia:

bash>sh run-server.sh

O servidor vai iniciar....

Indique o numero do porto:

9999

Indique o endereço IP (ou hostname) do servidor LDAP:

localhost

(...)

E todo este output/input do programa queria encaminhá-lo para um ficheiro .txt, durante a sua execução. Será que é possível?

P.S.: Não queria alterar o código do programa java, uma vez que esta é a última fase do projecto e já não é permitido alterar o código java.  :D Experimentei também fazer "sh run-server.sh > exec.txt " mas depois tudo o que coloco como input fica no terminal mas não vai para o ficheiro, e todo o output do programa vai para o ficheiro mas não vai para o terminal, e o que eu pretendia era que ambos aparecessem no terminal e que fossem gravados para o .txt.  :D

Se alguém conseguir dar uma "mãozinha"... Provavelmente será algo simples, mas já tentei de variadas maneiras e o melhor que consegui foi o que descrevi anteriormente.

Obrigado desde já.

Share this post


Link to post
Share on other sites
KTachyon

Para redireccionares o output para um ficheiro, só precisas de fazer qualquer coisa do género:

programa > ficheiro

Logo, em principio:

java -jar xpto.jar > java_output.txt
java xpto > java_output.txt

Deverão funcionar


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
jamirooo

Pois, e funciona, para o output do programa... O problema é que esse output é redireccionado para o ficheiro, deixa de aparecer no terminal, ou seja, eu deixo de saber o que é que o programa me está "a dizer"... E outro problema, tal como referi no post inicial, é que só o output do programa é redireccionado, o input não o é, ou seja, quando eu coloco 9999 como input, este não é redireccionado para o ficheiro .txt da maneira que mencionaste...  :D

Share this post


Link to post
Share on other sites
KTachyon

Bem... para veres o output, podes fazer:

tail -f java_output.txt

Mas continua a não ser interactivo.

Há a solução utilizando o tee:

java xpto | tee java_output.txt

O output vai para o stdout e para o ficheiro. Em relação ao stdin... não conheço nenhuma solução.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.