mi problema es simple, cuando intento ejecutar script .sh desde Java, el script no se ejecuta. Si cambio mi script a un comando simple de Linux, como ls -all, funciona perfectamente, así que supongo que estoy usando un comando incorrecto en mi script, que detiene la ejecución. Por favor ayuda.Ejecutando script bash desde java
David código
Java:
String cmd = "bash /home/david/burza/getter.sh";
try {
Process proc = Runtime.getRuntime().exec(new String[] {"/bin/sh", "-c", cmd});
BufferedReader read = new BufferedReader(new InputStreamReader(proc.getInputStream()));
try {
proc.waitFor();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
while (read.ready()) {
System.out.println(read.readLine());
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
script de Bash:
#! /bin/bash
wget -O data1.html http://www.rmsystem.cz/kurzy-online/akcie/easyclick;
touch ext_data.txt;
grep 'table class="tbl1"' ./data1.html | tr '<td>' ' ' | tr '-' 'A' | grep -o -w '[0-9, ]*' | sed 's/ *//g' | sed '/^$/d' | tr ',' '.' > ext_data.txt;
lines=`wc -l ext_data.txt | grep -o '[0-9]*'`;
(echo $lines; cat ext_data.txt) > ext_data.txt.new && mv ext_data.txt.new ext_data.txt;
¿Seguro de su script se establece como ejecutable? tal vez chmod + x script.sh podría ayudar – Kiwy
¿Qué esperas obtener? Su script de shell no imprime nada en stdout, redirige todo el resultado a los archivos. ¿Para qué sirve BufferedReader? – zserge
este es un código estúpido, escribe 3 hilos para flujos de entrada, salida y error y lo haces interactivamente, esto te salvará de todo tipo de problemas –