У меня есть команда MySQL в сценарии bash, в котором я запущен. Я бегу другой командной строки Linux команды перед этим (на самом деле один даже команда MySQL), но, когда он попадает в этот, он не работает:Bash Script не работает Команда MySQL
DEST_HOST="localhost"
DEST_DBNAME="db_name"
DEST_DBUSER="root"
DEST_DBPASS=""
# FILE NAME
MIGRATION_FILE="migration_database"
# Export/Import Commands
DO_DATABASE_UPDATE="mysql --host=$SOURCE_HOST --user=$DEST_DBUSER --password $DEST_DBNAME < $MIGRATION_FILE.sql"
echo 'Running local updates...'
$DO_DATABASE_UPDATE
echo "$DO_DATABASE_UPDATE"
# Done!
echo "Complete!"
У меня есть файл migration_database.sql
в которую я запускаю. Как вы можете видеть, я печатаю команду UPDATE в конце всего. Случается, что я запускаю это, и он просто печатает в меню mysql, как я запустил mysql -I
, чтобы получить меню справки.
Если я копирую и вставляю команду, которая распечатана и запускает ее, она отлично работает. Я не уверен, почему bash не выполняет это из скрипта.
Любые идеи?
Я бегу его от Терминал на моем Mac, поэтому я предполагаю, что это почему-то не подсказывает мне? Это определенно будет проблемой, я не понимал, что это так. Я обязательно попробую это. Мне нравится решение conf-файла. Я дам вам знать, что я найду, когда вернусь к своему компьютеру. Спасибо за быстрый ответ! – MillerMedia
Я снова играю с этим, и он не хочет запускать сценарий обновления. Он будет работать до символа '<', но затем не работает. Если я сломаю его из объявления переменной, он будет работать или если я остановлю объявление переменной в '' 'и сделаю это как' $ DO_DATABASE_UPDATE <$ MIGRATION_FILE.sql', это сработает. Есть ли проблема с использованием знака меньше чем в команде в переменной bash? – MillerMedia