wie füge ich der Datenbank-name mit Bindestrich, mit einem Skript in ubuntu
Ich habe versucht, mit diesem code in einem Skript, aber es ist einfach erstellt, was im inneren der "backtick". In diesem Beispiel, "echo "Tabelle-db"" wurde in der Datenbank erstellt. Es hat nicht erstellen den Namen des Ordners mit dem Bindestrich Zeichen, die in der Abfrage
hyph=`ls -l $DBDIR | egrep '^d' | grep '.-.' | awk '{print $9}'`
dbhype=($hyph)
for dbtry in ${!dbhype[*]}
do
mysql -u$dbUser -p$dbPass -e 'CREATE DATABASE IF NOT EXISTS `echo "table-db"` CHARACTER SET utf8 COLLATE utf8_general_ci';
echo "Database ${dbhype[$dbtry]} created."
done
- ich habe versucht mit "echo "Tabelle-db"" in diesem Beispiel, weil von dem, was ich gesucht habe, backtick würde nur lese-Befehle, aber ich möchte wirklich zum erstellen der name-Tabelle-db in diesem Fall, oder die Namen der Ordner in der Abfrage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In mysql-Abfragen Tabelle Namen kann enthalten alphanumerischen Zeichen, dem Unterstrich und dem Dollarzeichen. Um In der Lage sein zu verwenden, andere ANSI-Zeichen müssen Sie Ort, Namen im single backquotes.
Aber in der bash Sie haben unterschiedliche Bedeutung und für Kommando-substitution. In bash gibt es auch mehrere Arten von strings -- in double quotes und single quotes. Der Unterschied zwischen Ihnen ist, dass bei doppelten Anführungszeichen Variablen expansion und Kommando-substitution durchgeführt werden, während in single quotes nicht. So können Sie mit backquotes mit mysql-Semantik innerhalb von einfachen Anführungszeichen wie
aber fliehen muss, wenn Sie innerhalb von doppelten Anführungszeichen, so, dass Sie nicht interpretiert werden von der bash als Befehl sustitution.
Wie Sie wollen, um die Datenbank-Namen von Variablen, die Sie brauchen, um es zu platzieren, über single quote String, so:
oder so:
ls -l $DBDIR | egrep '^d' | grep '.-.' | awk '{print $9}'
dbhype=($hyph) für dbtry in ${!dbhype[*]} do mysql -u$dbUser -p$dbPass -e " CREATE DATABASE IF not EXISTS'${dbhype[$dbtry]}'
CHARACTER SET utf8 COLLATE utf8_general_ci;' echo "Datenbank ${dbhype[$dbtry]} erstellt." fertig