|
|
|
MySQL и shell
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пытаюсь через шелл (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, а то как не пробую всё получается ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2004, 01:35 |
|
||
|
MySQL и shell
|
|||
|---|---|---|---|
|
#18+
Что-то типа (навскидку не проверяя) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Кавычки вокруг mysql.... обратные, не должно быть пробелов после RES перед = и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2004, 13:46 |
|
||
|
MySQL и shell
|
|||
|---|---|---|---|
|
#18+
Спасибо, Хрен! Все очень даже работает. Вот только для меня не понятна конструкция if [ x$RES == x ] Понимаю, что учить новичков скучно и не интересно , но ткни хотя бы носом в мануал, чтобы самому разобраться. Как говорится, гуру силён своими учениками :-)))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2004, 21:06 |
|
||
|
MySQL и shell
|
|||
|---|---|---|---|
|
#18+
Это такая проверка па пустую строку. Если сделать по простому типа if [ $RES == 'чтоточтовернулсервер' ] то при пустой RES оно превратится в if [ == 'чтоточтовернулсервер' ] и shell выдаст тут синтаксическую ошибку. А конструкция if [ x$RES == x ] при пустом RES превратится в if [ x==x], чего мы и добивались.. Это просто такой прием, к которому я привык. на самом деле есть и другие способы проверять, пустая ли переменная в shell. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 00:07 |
|
||
|
MySQL и shell
|
|||
|---|---|---|---|
|
#18+
Ага, спасибо за пояснения.... Но только в моем случае такая проверка не проходит, т.к. echo $res выдает такой результат при наличии записи в БД: [test@host123 test]# ./test.sh date 20040623 Соответственно при проверке получается [ xdate 20040623 == x ], на что bash ругается грязными английскими словами :-) Я попробовал немного изменить проверку [ "$RES" == "" ] и все стало хорошо. Еще раз спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 03:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32572832&tid=1855050]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 448ms |

| 0 / 0 |
