Bash-mysql查询:错误1054(42S22)和#x27;文件名';在';字段列表';
我发现了许多未知列名的类似问题,但没有一个报告与此相同,我迷路了: 第1行出现错误1054(42S22):“字段列表”中的未知列“tad.sh” “tad.sh”是bash脚本本身的名称 守则: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
#!/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"