Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
frindly
- Beiträge: 1085
- Registriert: 23.10.2007 08:13:26
- Wohnort: Recklinghausen
Beitrag
von frindly » 02.07.2013 23:22:07
Hallo
ich möchte gerne das Ergebnis einer SQL Abfrage in einem Shell Script nutzen.
Mein Script sieht so aus:
Code: Alles auswählen
#!/bin/bash
myVar=$(echo "SELECT sendungsnummer FROM bestellungen where id=40170" | mysql -u xxx -pxxx -P 111 datenbank)
echo "Variable:"
echo "$myVar"
Als Ergebnis kommt immer:
sendungsnummer
8
Das heisst immer noch die Überschrift der Spalte mit dazu.
Wie bekomme ich das hin, das nur die 8 in der Variable landet???
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 03.07.2013 00:37:51
z.B. so:
Du kannst natürlich schon bei der Zuweisung filtern.
Zuletzt geändert von
linuxCowboy am 04.07.2013 11:34:43, insgesamt 1-mal geändert.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
goeb
- Beiträge: 348
- Registriert: 26.08.2006 18:12:08
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von goeb » 03.07.2013 00:56:19
Oder du schaust mal in die Dokumentation, würde mich wundern wenn es keine Option gäbe mit der man den Tabellenkopf abschalten kann.
-
Phineas
- Beiträge: 354
- Registriert: 20.06.2012 20:26:19
Beitrag
von Phineas » 03.07.2013 16:24:19
Code: Alles auswählen
myArray=($(echo "SELECT sendungsnummer FROM bestellungen where id=40170" | mysql -u xxx -pxxx -P 111 datenbank))
echo "${myArray[1]}"
-
Cae
- Beiträge: 6349
- Registriert: 17.07.2011 23:36:39
- Wohnort: 2130706433
Beitrag
von Cae » 03.07.2013 16:29:22
Phineas hat geschrieben:Code: Alles auswählen
myArray=($(echo "SELECT sendungsnummer FROM bestellungen where id=40170" | mysql -u xxx -pxxx -P 111 datenbank))
echo "${myArray[1]}"
Das ist bash-only:
Die korrekte Loesung sollte die von goeb sein, naemlich, die stoerende Zeile erst gar nicht entstehen zu lassen. Falls das nicht moeglich sein sollte, wuerde ich als Workaround etwas wie
Code: Alles auswählen
var="$(echo ... | mysql ... | grep -v '^sendungsnummer$')"
verwenden und die Zeile einfach rausfiltern.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
Phineas
- Beiträge: 354
- Registriert: 20.06.2012 20:26:19
Beitrag
von Phineas » 03.07.2013 16:34:42
Cae hat geschrieben:Das ist bash-only
Ist mir nicht entgangen:
-
Cae
- Beiträge: 6349
- Registriert: 17.07.2011 23:36:39
- Wohnort: 2130706433
Beitrag
von Cae » 03.07.2013 17:01:45
Phineas hat geschrieben:Ist mir nicht entgangen:
... mir allerdings schon. Okay.
Fuer die Zeilen braucht man aber keine fettere Bash, eigentlich. Fragt sich, ob der zusaetlichzliche
fork() fuer
grep effizienter ist.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 04.07.2013 00:15:10
mit Anführungszeichen bleibt das
newline drin:
dann geht auch:
PS: Ich liebe die Bash!
Zuletzt geändert von
linuxCowboy am 04.07.2013 11:28:44, insgesamt 1-mal geändert.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
Cae
- Beiträge: 6349
- Registriert: 17.07.2011 23:36:39
- Wohnort: 2130706433
Beitrag
von Cae » 04.07.2013 05:15:38
linuxCowboy hat geschrieben:
Tu' doch bitte bei sowas die drei weiteren Buchstaben "cho" noch mit dazu, wenn nicht gerade die Zeile mit'm Alias oben drueber steht. Das irritiert ein bisschen, auch wenn darauf in deiner Signatur hingewiesen wird. Ich kann diese Kommandozeile auch nicht einfach in meine Shell kopieren und gucken, ob bei mir dasselbe rauskommt. Ausserdem gibt's einen Haufen komischer Leute, die sich
e auf
emacs gealiast haben...
Fuer den interaktiven Gebrauch spart das bestimmt eine Anzahl Tastendruecke, sofern man gerade an einer entsprechend geconften Maschine sitzt.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 04.07.2013 11:28:09
Das emacs-Argument überzeugt mich. Stallman ist cool!
-der_linux_cowboy --- Besser werden! ... f*** w$$