Pergunta

Alguém pode me dizer como escrever as saídas de um aplicativo no mysql usando o script bash?por exemplo, um aplicativo java com o seguinte código

class HelloWorld {
public static void main(String[] args) {
    System.out.println("Hello World!");
    System.out.println("Message 1!");
    System.out.println("Message 2!");
    System.out.println("Message 3!");
}

}

eu quero produzir 4 linhas na tabela para cada System.out

eu tentei esse script

app_name="HelloWorld"
app_output=$(java $app_name);
mysql -u<username> -p'<password>' <db_name> <<_EOF_
INSERT INTO logs_tbl (app_name,text) VALUES ("$app_name","$app_output");
_EOF_

mas o problema é que ele produz uma linha quando o aplicativo sai com valor:Olá mundo!Mensagem 1!Mensagem 2!Mensagem 3!

Foi útil?

Solução

Experimente o seguinte:

#!/bin/bash

app_name="HelloWorld"
java $app_name | while read line
do
        echo "INSERT INTO logs_tbl (app_name,text) VALUES ('$app_name','$line');" | mysql -u <username> -p '<password>' <db_name>
done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top