powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и shell
5 сообщений из 5, страница 1 из 1
MySQL и shell
    #32570656
Torion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Пытаюсь через шелл (ASPLinux9.2) работать с MySQL. Надо определить наличие строки в базе и если ее нет, то произвести запись. Вот такой запрос прекрасно работает:

mysql -u$user -p$pass $base <<QUERY_INPUT
SELECT date FROM my_tabl WHERE date = $cur_date;
QUERY_INPUT

и если запись есть, то выдает на экран:

[test@host123 test]$ ./test.sh
date
20040621

Подскажите как это использовать для проверки по if, а то как не пробую всё получается ошибка...
...
Рейтинг: 0 / 0
MySQL и shell
    #32571630
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа (навскидку не проверяя)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
RES=`mysql test -e " select  date FROM my_tabl WHERE date = $cur_date; "`

if [ x$RES == x ] 
then
 echo "Нету даты в базе"
else
 echo "Есть такое"
fi


Кавычки вокруг mysql.... обратные, не должно быть пробелов после RES перед = и тд.
...
Рейтинг: 0 / 0
MySQL и shell
    #32572711
Torion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Хрен!
Все очень даже работает. Вот только для меня не понятна конструкция
if [ x$RES == x ]
Понимаю, что учить новичков скучно и не интересно , но ткни хотя бы носом в мануал, чтобы самому разобраться.

Как говорится, гуру силён своими учениками :-))))))))))
...
Рейтинг: 0 / 0
MySQL и shell
    #32572779
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это такая проверка па пустую строку. Если сделать по простому типа if [ $RES == 'чтоточтовернулсервер' ] то при пустой RES оно превратится в if [ == 'чтоточтовернулсервер' ] и shell выдаст тут синтаксическую ошибку. А конструкция if [ x$RES == x ] при пустом RES превратится в if [ x==x], чего мы и добивались.. Это просто такой прием, к которому я привык. на самом деле есть и другие способы проверять, пустая ли переменная в shell.
...
Рейтинг: 0 / 0
MySQL и shell
    #32572832
Torion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, спасибо за пояснения.... Но только в моем случае такая проверка не проходит, т.к. echo $res выдает такой результат при наличии записи в БД:
[test@host123 test]# ./test.sh
date 20040623
Соответственно при проверке получается [ xdate 20040623 == x ], на что bash ругается грязными английскими словами :-)

Я попробовал немного изменить проверку [ "$RES" == "" ] и все стало хорошо.

Еще раз спасибо за помощь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL и shell
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]