Bash-mysql查询:错误1054(42S22)和#x27;文件名';在';字段列表';

Bash-mysql查询:错误1054(42S22)和#x27;文件名';在';字段列表';,mysql,bash,Mysql,Bash,我发现了许多未知列名的类似问题,但没有一个报告与此相同,我迷路了: 第1行出现错误1054(42S22):“字段列表”中的未知列“tad.sh” “tad.sh”是bash脚本本身的名称 守则: #!/bin/sh FPATH="/home/bermans/CHIT/" DATE="$(date +"%d-%m-%Y")" FNAME="transfer-authority.csv" HEADS="\"Time\", \"Urgent\", \"Initials\", \"Transfer fr

我发现了许多未知列名的类似问题,但没有一个报告与此相同,我迷路了:

第1行出现错误1054(42S22):“字段列表”中的未知列“tad.sh”

“tad.sh”是bash脚本本身的名称

守则:

#!/bin/sh
FPATH="/home/bermans/CHIT/"
DATE="$(date +"%d-%m-%Y")"
FNAME="transfer-authority.csv"
HEADS="\"Time\", \"Urgent\", \"Initials\", \"Transfer from\", \"From description\",    \"Transfer to\", \"To description\", \"Sum\", \"In respect of\""

params="-u #### -p#### chit"
s1="SELECT "
s2=" UNION"
s3=" SELECT *"
s4=" FROM \`transfer-authority\`"
s5=" WHERE Time > DATE_SUB( NOW( ) , INTERVAL 24 HOUR )"
s6=" INTO OUTFILE "
s7=" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"'"
s8=" LINES TERMINATED BY '\n'"
selectend=";"

echo $s1$HEADS$s2$s3$s4$s5$s6\'$FPATH$DATE$FNAME$\'$s7$s8$selectend | mysql $params
我想一个CSV文件,以标题每天的条目作出了过去24小时。我将把它作为cronjob运行,然后通过电子邮件删除该文件

非常感谢您的帮助

谢谢

尝试使用

mysql -u #### -p#### -e $s1$HEADS$s2$s3$s4$s5$s6\'$FPATH$DATE$FNAME$\'$s7$s8$ chit

删除echo语句中的
|mysql$params
部分,您将得到一个令人不快的惊喜;-)

问题是
s3=“SELECT*”
被注入到
echo
语句中,而
*
被shell解释为通配符。这与在控制台中键入此命令相同:

echo *
尝试双引号引用
echo
参数(不再需要转义单引号):


我真的应该注意到这一点!非常感谢。
echo "$s1$HEADS$s2$s3$s4$s5$s6'$FPATH$DATE$FNAME$'$s7$s8$selectend"