微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐