我正在尝试创建一个bash脚本,用于在mySQL数据库中输入值。最终目标是使用smartmontools收集有关硬盘驱动器的数据,但是我遇到了很多错误,我决定将其分解并开始非常简单。我是bash / mySQL的总菜鸟。我的测试数据库现在只包含一个USER和DATE的表。 这是我的bash脚本:
USR=$USER
DATE=$(date +%y%m%d)
mysql -hlocalhost -uuser -ppw -Dtest<<EOF INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE);
EOF
exit
这是我收到的错误消息:
./ysmartmon: line 4: syntax error near unexpected token `('
./ysmartmon: line 4: `mysql -hlocalhost -uuser -ppw -Dtest<<EOF INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE);'
我做错了什么?是这个吗?我需要摆脱它?但是我该怎么做?
答案 0 :(得分:0)
在<< EOF
之后打破这一行,如下所示:
mysql -hlocalhost -uuser -ppw -Dtest << EOF
INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE);
EOF
此<< EOF
构造称为 here-document ,
你可以在man bash
中阅读更多相关信息。
要在man bash
中搜索,
输入/here-doc
,然后按Enter键。