URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9697
[ Назад ]

Исходное сообщение
"MySQL в bash кавычки"

Отправлено antonstv , 21-Июн-13 15:45 
Приветствую.
Нужна помощь в скрипте.

#!/bin/bash
cat ./user033.txt | while read line; do
mysql -u root --password=gogogog --database=legos --execute=\'$line\'
echo mysql -u root --password=gogogog --database=legos --execute=\'$line\'
done
MySQL ругается на синтаксис команды

В user033.txt
INSERT INTO chatlog (RcvrNick, MsgText) VALUES ("sntonstv","№01681 документ не найден")

Загвоздка, думаю, в кавычках и апострофах.
результат echo
mysql -u root --password=gogogog --database=legos --execute='INSERT INTO chatlog (RcvrNick, MsgText) VALUES ("sntonstv","№01681 документ не найден")'

Если его скопировать и запустить в консоли, то отрабатывает нормально.
Помогите, разобраться, как это в скрипте прописать.


Содержание

Сообщения в этом обсуждении
"MySQL в bash кавычки"
Отправлено Etch , 21-Июн-13 19:19 
> Помогите, разобраться, как это в скрипте прописать.

Как-то так:

#!/bin/bash
mysql -u root --password=gogogog --database=legos < ./user033.txt



"MySQL в bash кавычки"
Отправлено antonstv , 21-Июн-13 21:05 
>> Помогите, разобраться, как это в скрипте прописать.
> Как-то так:
> #!/bin/bash
> mysql -u root --password=gogogog --database=legos < ./user033.txt

Спасибо!

А я, блин, пошел через .... )


"MySQL в bash кавычки"
Отправлено pexi777 , 10-Июл-13 13:38 
>> Помогите, разобраться, как это в скрипте прописать.
> Как-то так:
> #!/bin/bash
> mysql -u root --password=gogogog --database=legos < ./user033.txt А откуда этот скрипт [img]http://makis.ru/uploads/posts/2013-06/1372153005_tricks-and-...

"MySQL в bash кавычки"
Отправлено Andrey Mitrofanov , 10-Июл-13 14:48 
> echo mysql -u root --password=gogogog --database=legos --execute=\'$line\'
> done
> MySQL ругается на синтаксис команды
> Если его скопировать и запустить в консоли, то отрабатывает нормально.

BEHOLD!

$ args() { local i=0; while(( i < ${#*})); do echo "$((++i))) >${!i}<"; done; }
$ args 1 2\ 3 4
1) >1<
2) >2 3<
3) >4<
$ list='INSERT INTO chatlog (RcvrNick, MsgText) VALUES ("sntonstv","№01681 документ не найден")'
$ args -u root --password=gogogog --database=legos --execute="$list"
1) >-u<
2) >root<
3) >--password=gogogog<
4) >--database=legos<
5) >--execute=INSERT INTO chatlog (RcvrNick, MsgText) VALUES ("sntonstv","№01681 документ не найден")<
$ _

> Помогите, разобраться, как это в скрипте прописать.

Так, man bash же!! B-)