Domanda

Qualcuno può dirmi come scrivere le uscite di un'applicazione a MySQL usando lo script di Bash? Ad esempio un'applicazione Java con il seguente codice

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!");
}
.

}

Voglio produrre 4 righe in tabella per ogni sistema.out

Ho provato questo 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_
.

Ma il problema è che produce una riga quando l'app uscita con valore: Hello World! Messaggio 1! Messaggio 2! Messaggio 3!

È stato utile?

Soluzione

Prova quanto segue:

#!/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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top