Как передать параметр в sql-запрос в shell-скрипте?

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Как передать параметр в sql-запрос в shell-скрипте?

Непрочитанное сообщение skeletor » 2008-04-17 9:17:13

Есть запрос :

Код: Выделить всё

select * from TABLE_NAME where FIELD_NAME like '%pattern%'
[code]
который я хочу запихнуть в скрипт. И главная проблема в том, что не могу передать параметр pattern в скрипт. То есть, содержимое скрипта
[code]
#!/bin/sh
mysql DB_NAME -u root -pPASSWORD -e "select * from TABLE_NAME where FIELD_NAME like '%$1%'"
[code]
Запускаю скрипт так
[code]
./mscript user
Но, запрос выполняется с ошибками из-за того, что нельзя передать параметр $1 в запрос mysql. Одинарные кавычки этому препятствуют. Подскажите, как можно передать параметр ну или какие-нибудь идеи. Уже пробовал экранировать одинарные кавычки, но то ошибка вылазит, то пустой ответ выдаёт на запрос.
Если делать честно, а именно : зайти в mysql и там выполнить нужный запрос, то всё ок.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
squid
лейтенант
Сообщения: 683
Зарегистрирован: 2007-05-25 11:32:23
Откуда: Украина, Киев
Контактная информация:

Re: Как передать параметр в sql-запрос в shell-скрипте?

Непрочитанное сообщение squid » 2008-04-17 9:20:53

Код: Выделить всё

echo "select * from TABLE_NAME where FIELD_NAME like '%$1%'" | mysql db_name -uuser -ppassword
хех..