当前位置: 首页 > 科技观察

Shell应用:批量导入SQL文件,你还在复制粘贴文件名吗?

时间:2023-03-16 20:10:37 科技观察

背??景从一个数据库中导出N张表的SQL语句,汇总到一个文件夹中。然后,将其导入到目标数据库中。在这个过程中,如果一个一个地敲source命令太麻烦,还不如自己写个脚本搞定,顺便练练手。本文将介绍一个遍历文件夹中文件的shell应用程序。该脚本用于批量导入目标文件夹中的SQL文件。核心是获取目录下所有SQL文件的名称,循环执行import语句。所以,一个ls命令就可以做到。curDir=$1cd$curDirecho'Startimport.sqlfileindirectory'$curDirfileTmp=`ls`fileNames=($(echo$fileTmp))forfileNamein${fileNames[@]}doecho'currentfile'$fileNamemysql-hlocalhost-uroot-p123456<./$fileNameecho''donecho'Finishedimport.sqlfile.'脚本分析ls命令输入的所有文件名;用$命令将ls的输出值按空格分割成一个数组;${arrayname[@]}将数组展开成一个列表,使用forin进行遍历。命令分解输出示例:Apocalypse值得注意的是,如果SQL语句是插入操作,则使用database;必须用于指定目标数据库。实际上是有选择地导出了8张表的SQL语句。一个一个地输入文件名是没有问题的。这也是最简单的处理方式,但这不符合良好的开发和解决问题的风格。它是一个遍历文件名。命令,网上没找到现成的脚本,自己写了一个!写脚本用了十几分钟,但比起复制粘贴文件名技术性强多了。顺便也练习了一下Shell数组的语法。再说了,如果脚本到了运维同事手里,他们可能会偷偷夸一下脚本作者的心思!