Wie schließe ich eine Zeichenfolge mit einem Ausdruck in einen Befehl in einem Bash-Skript ein?Einschließlich String-Ausdrücke in Bash-Befehle
Beachten Sie Folgendes:
#!/bin/bash
exclusions='Database|information_schema|mysql'
echo "mysql -e 'SHOW DATABASES' | grep -E -v '$exclusions' > outfile"
mysql -e 'SHOW DATABASES' | grep -E -v '$exclusions' > outfile
Das Skript druckt auf dem Bildschirm:
mysql -e 'SHOW DATABASES' | grep -E -v 'Database|information_schema|mysql' > outfile
... also denke ich, meine Syntax, um die Befehlsfolge produziert ich will. Und wenn ich die gedruckte Zeichenfolge manuell in die Befehlszeile eingabe, werden mit dem Befehl alle Datenbanknamen außer denen im grep-Ausdruck in 'outfile' geschrieben.
Das Skript exportiert jedoch alle Datenbanknamen in die Datei, ohne die Namen im grep-Ausdruck auszuschließen. Warum übersieht das Skript den Grep-Ausdruck?