Когда вы пишите скрипт командной строки как часть некоторой пакетной обработки, бывают ситуации, когда скрипту нужно обработать данные, хранящиеся на отдельном MySQL сервере. Скриптовые языки общего назначения, вроде Perl и Python, имеют отдельные MySQL модули или интерфейсы для использования в этой ситуации, но скриптовые языки командной строки не имеют такого интерфейса для MySQL. Тем не менее, есть способы выполнить простые MySQL запросы и обработать результат посредством скрипта командной строки.
Далее инструкция, как сделать MySQL запрос в скрипте командной строки.
Во-первых, у вас должен быть установлен MySQL клиент на хост, где вы будете запускать ваш скрипт командной строки.
Предположим, что так и есть, в этом случае вы можете выполнить следующий шелл-скрипт. Пример кода, представленный здесь, выполняет простой MySQL вызов SELECT и обрабатывает результат, который, потенциально, содержит несколько строк.
#!/bin/bash result=`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -e "select id from mydb.mytable where myattribute = 3"` items=$(echo $result | tr " " "n") for item in $items do echo "$item" done
В этом отрывке кода переменная "result" будет хранить множество записей таблицы, объединённых белым пробелом. Поэтому вам нужно разделить строку результата на индивидуальные строки, помещённые в "items" как массив. Наконец, обработайте в цикле индивидуальные строки так, как вы хотите.