【发布时间】:2010-12-07 21:46:49
【问题描述】:
我有一个目录,其中的文件如下所示:
001_something.php 002_something_else.php
004_xyz.php 005_do_good_to_others.php
我最终想创建一个新的空 PHP 文件,其名称以系列中的下一个数字开头。
LIST=`exec ls $MY_DIR | sed 's/\([0-9]\+\).*/\1/g' | tr '\n' ' '`
前面的代码给了我一个这样的字符串:
LIST='001 002 004 005 '
我想抓住那个 005,加一,然后用那个数字生成新的文件名。如何在 BASH 中做到这一点?
【问题讨论】:
-
这是作为 Web 应用程序的一部分运行的吗?如果 Web 服务器同时接受多个请求(大多数都接受),当进程 A 和 B 同时进行检查然后创建具有相同编号的文件时,您将如何防止竞争条件?
-
不,这是一个 shell 脚本的一部分,用于模拟 rails 的“生成迁移”工具,用于使用数据库迁移模式的红头继子实现的 php 应用程序。