Comment inclure une chaîne avec une expression dans une commande dans un script bash?Ajout d'expressions chaîne dans les commandes bash
Considérez ce qui suit:
#!/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
Les impressions de script à l'écran:
mysql -e 'SHOW DATABASES' | grep -E -v 'Database|information_schema|mysql' > outfile
... donc je pense que ma syntaxe est la production de la chaîne de commande que je veux. Et quand je saisis manuellement la chaîne imprimée sur la ligne de commande, la commande place tous les noms de bases de données, sauf ceux de l'expression grep, dans 'outfile'.
Mais le script exporte tous les noms de base de données, sans exclure ceux de l'expression grep, dans le fichier. Pourquoi le script ignore-t-il l'expression grep?