Я пытаюсь отправить некоторые данные в удаленную базу данных MySQL с использованием сценария BASH на GNU/Linux, но получить различные ошибки. Вот строка, которая не работает:Heredocs, переменные и одинарные кавычки в BASH и MySQL
mysql --host=192.168.0.100 --user=petercapaldi --password=mypassword mystartrekcharacterbase << EOF
INSERT into myfourlegs values ('$PERSON','$THETIME','$THETIME','$THEDATE','$DAYOFWEEK');
EOF
и это тоже (на всякий случай):
mysql --host=192.168.0.100 --user=petercapaldi --password=mypassword mystartrekcharacterbase << EOF
INSERT into myfourlegs values (\047$PERSON\047,\047$THETIME\047,\047$THETIME\047,\047$THEDATE\047,\047$DAYOFWEEK\047);
EOF
Вместо этого вы можете попробовать backquotes? например '\\' $ PERSON \\ '' – konsolebox
@shellter Это всего лишь локальный IP-адрес. Я не думаю, что это действительно важно для него. – konsolebox
Это поддельный локальный IP-адрес, я просто немного смазал персонажей :) Решив проблему сейчас, я был идиотом и пропустил идентификатор из базы данных. Одиночные кавычки печатаются так, как они должны (т. Е. Печатать переменные с кавычками вокруг них) –