Écrivez des applications sorties sur la base de données MySQL avec le script Linux
Question
Quelqu'un peut-il me dire comment écrire les sorties d'une application à MySQL à l'aide de Bash Script? Par exemple, une application Java avec le code suivant
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!");
}
}
Je veux produire 4 rangées dans le tableau pour chaque système.out
J'ai essayé ce 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_
Mais le problème est que cela produise une ligne lorsque l'application sortie avec valeur: Bonjour World! Message 1! Message 2! Message 3!
La solution
Essayez ce qui suit:
#!/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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow