Как включить строку с выражением в команду в скрипте bash?
Обратите внимание на следующее:
#!/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
Скрипт выводит на экран:
mysql -e 'SHOW DATABASES' | grep -E -v 'Database|information_schema|mysql' > outfile
... так что я думаю, что мой синтаксис создает желаемую командную строку. И когда я вручную ввожу напечатанную строку в командную строку, команда помещает все имена баз данных, кроме названий в выражении grep, в outfile.
Но скрипт экспортирует все имена баз данных, не исключая имена в выражении grep, в файл. Почему скрипт пропускает выражение grep?