下面的脚本将一堆csv文件加载到mysql数据库中.我试图在循环中执行此函数,但名为return的mysql表字段导致脚本认为它应该执行函数返回.
`around返回是为mysql转义它,它是一个mysql关键字.
for f in *.txt; 
do 
 mysql -uroot -ppassword -e "LOAD DATA INFILE '$f' INTO TABLE info FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (`return`,`id`,`field1`,`field2`);"; 
done
Run Code Online (Sandbox Code Playgroud)
    这是 mysql 中使用反引号字符的愚蠢引用约定。你可以用单引号代替,ie ', ie 吗'return'?
反引号表示“在 shell 中的当前命令中执行命令替换”,因此它正在尝试运行该命令return。
如果你不能使用'return'那么你可以转义所有反引号,比如
\`return\`
Run Code Online (Sandbox Code Playgroud)
IHTH