如何使用shell脚本增加版本号?

时间:2016-06-23 15:22:47

标签: linux bash shell sh

我的版本号有三列和两位数(xx:xx:xx)。谁能告诉我如何使用shell脚本增加它。

Min Value
00:00:00

Max Value
99:99:99

Sample IO
10:23:56 -> 10:23:57
62:54:99 -> 62:55:00
87:99:99 -> 88:00:00

5 个答案:

答案 0 :(得分:3)

作为使用awk的一个班轮,假设VERSION是一个带有版本的变量:

What about AFNetworking ?

答案 1 :(得分:1)

这很容易,只需要一些小数学技巧和alter table QUOTE_HOUSE add TESTCOL Varchar2(20)命令,这里是如何:

bc

如果需要溢出检查,可以使用#!/bin/bash # read VERSION from $1 into VER IFS=':' read -r -a VER <<< "$1" # increment by 1 INCR=$(echo "ibase=10; ${VER[0]}*100*100+${VER[1]}*100+${VER[2]}+1"|bc) # prepend zeros INCR=$(printf "%06d" ${INCR}) # output the result echo ${INCR:0:2}:${INCR:2:2}:${INCR:4:2} 语句之类的技巧来完成。

答案 2 :(得分:0)

这基本上有效,但可能会也可能不会进行字符串填充:

ELASTICSEARCH_URL

答案 3 :(得分:0)

尝试这一个班轮:

    File "PATH_TO_DJANGO\app1\management\excel.py", line 3, in <module>
    from app1.functions import method1, method1, method3
    ImportError: cannot import name method1

测试:

awk '{gsub(/:/,"");$0++;gsub(/../,"&:");sub(/:$/,"")}7'

请注意,角落案例未经过测试。

答案 4 :(得分:0)

不需要任何花哨的东西(除了Bash):

$ ver=87:99:99
$ echo "$ver"
87:99:99
$ printf -v ver '%06d' $((10#${ver//:}+1))
$ ver=${ver%????}:${ver: -4:2}:${ver: -2:2}
$ echo "$ver"
88:00:00

我们只使用参数展开${ver//:}来删除冒号:然后我们将使用通常的十进制数字,增加它并使用printf重新格式化它;然后使用一些更多的参数扩展来对数字进行分组。

这假设ver已被彻底检查(使用正则表达式或glob)。