ubuntuusers.de

bash-variable in mysql abfrage übergeben

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

krischeu

Anmeldungsdatum:
9. März 2007

Beiträge: Zähle...

Wohnort: Kahl

Hallo, kann mir da mal jemand auf die sprünge helfen?

Grundsätzlich mit festem Tabellennamen geht das. Ich möchte aber eine Datum/Zeitkombination als Zusatz dranhängen.

stunde=`date "+%R %d.%m.%y "| awk -F':' '{print$1}'`
minute=`date "+%R %d.%m.%y "| awk -F':' '{print$2}' | awk '{print$1}'`
datum=`date "+%R %d.%m.%y "| awk '{print$2}' | sed 's/\.//g'`
dbzusatz=$datum$stunde$minute

mysql --user=root --password=PASSWORT --database=DATENBANKNAME -e 'ALTER TABLE mdl_user RENAME mdl_user_$dbzusatz

Es kommt als Tabellename aber nur mdl_user_$dbzusatz raus und nicht mdl_user_0983646

;(

Bearbeitet von prometheus0815:

Codeblock eingefügt. Bitte verwende Codeblöcke, um die Lesbarkeit von Konsolenausgaben, Konfigurations- und Logdateien zu verbessern.

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

1
2
3
4
5
chant="wavin flag" 
echo '$chant'
$chant
echo "$chant"
wavin flag

krischeu

(Themenstarter)

Anmeldungsdatum:
9. März 2007

Beiträge: 50

Wohnort: Kahl

adun schrieb:

1
2
3
4
5
chant="wavin flag" 
echo '$chant'
$chant
echo "$chant"
wavin flag

echo $dbzusatz –> funktioniert prima. Der Datenbankname sieht halt nicht so aus, wie ich es erwarte.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

krischeu schrieb:

mysql --user=root --password=PASSWORT --database=DATENBANKNAME -e 'ALTER TABLE mdl_user RENAME mdl_user_$dbzusatz

Das ['] scheint mir der Übeltäter zu sein. (am Ende stand bestimmt auch noch eins)

Denn dann werden Variablen von der Shell nicht ersetzt, sondern der Text komplett abgeschirmt.
(→ http://www.gnu.org/software/bash/manual/bash.html#Quoting )

Du solltest hier ["] benutzen.

LG,

track

krischeu

(Themenstarter)

Anmeldungsdatum:
9. März 2007

Beiträge: 50

Wohnort: Kahl

Sorry, aber es geht auf mit 2 " " Stck. nicht ...

mysql --user=root --password=asdfasdfa --database=asdfasd -e "ALTER TABLE mdl_user RENAME $dbzusatz"

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

krischeu schrieb:

... geht nicht

Was meinst Du damit ? - Du musst mir schon verraten was Du an Fehlermeldungen oder Ergebnis bekommst, meine Glaskugel ist z.Z. im Urlaub. ☺

Und was bekommst Du bei einem

echo mysql --user=root --password=asdfasdfa --database=asdfasd -e "ALTER TABLE mdl_user RENAME $dbzusatz"

heraus ? - womöglich soll das alles nach dem "-e" ja auch gar nicht 1 einziger Parameter sein ?

track

krischeu

(Themenstarter)

Anmeldungsdatum:
9. März 2007

Beiträge: 50

Wohnort: Kahl

Da kommt dann:

ERROR 1146 (42S02) at line 1: Table 'userimport.mdl_user' doesn't exist

krischeu

(Themenstarter)

Anmeldungsdatum:
9. März 2007

Beiträge: 50

Wohnort: Kahl

solved " " geht doch. Asche über mein Haupt. hatte das vorher mal gelöscht.

Daaaaaanke

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Anders herum gefragt: wofür hattest Du überhaupt ein ['] gesetzt ?

track

Antworten |