我试图创建一个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);'
我做错了什么?这是我需要摆脱的吗?但我该怎么做呢?
在<< 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"。