数据库
首页 > 数据库> > bash – 列出在/大于给定前缀之后出现词法的文件(或者以正确的顺序运行数据库升级脚本)

bash – 列出在/大于给定前缀之后出现词法的文件(或者以正确的顺序运行数据库升级脚本)

作者:互联网

我正在尝试创建一个运行在一堆SQL脚本中的shell脚本.

我有这些文件:

$ls upgrade/
01-foo.sql 02-bar.sql 02-baz.sql 03-foo1.sql 04-buz.sql

我已经获得了当前数据库的版本,例如DB_VERSION = 02

我现在如何轻松地循环并使用大于$DB_VERSION的前缀对文件进行全局处理,并按顺序运行它们?

即我想做

for f in ???? ; do 
   mysql &lt $f
done

并且,在DB_VERSION = 02的情况下,按顺序运行03-foo1.sql和04-buz.sql.

解决方法:

初始设置:触摸01-foo.sql 02-bar.sql 02-baz.sql 03-foo1.sql 04-buz.sql 09-quux.sql 10-lala.sql 99-omg.sql

实际代码:curr = 02;对于文件?? – * .sql; do ver =“${file:0:2}”; [“$ver”-gt“$curr”]&& echo“$file”; DONE

即,将当前版本定义为02,然后查看所有文件(globbing是按字母顺序排列),如果它们的数字前缀在数字上更大,则执行它们.替换mysql(或你有什么)的echo.

标签:bash,mysql,shell-script
来源: https://codeday.me/bug/20190816/1670574.html