|

楼主 |
发表于 2005-5-8 20:10:07
|
显示全部楼层
下面是我现在的代码。为了依赖最少的程序,我只是用了 ANSI C 和 POSIX yacc。直接运行 make 就可以编译了:
- $ mv vercmp.y.txt vercmp.y
- $ mv makefile.txt makefile
- $ make
复制代码
程序的任务就是比较两个不同的版本号,并将更新的那一个打印出来。版本号的定义以及新版本的定义是参照 Gentoo Ebuild Policy 定义的,网址在第一贴。下面是我试着执行的一些结果:
- $ ./vercmp 1.2 1.3; echo
- 1.3
- $ ./vercmp 1.2.6 1.2.6.1; echo
- 1.2.6.1
- $ ./vercmp 1.2.6-r4 1.2.6-r5; echo
- 1.2.6-r5
- $ ./vercmp 1.2.6_pre7 1.2.6; echo
- 1.2.6
- $ ./vercmp 1.2.6_p7 1.2.6; echo
- 1.2.6_p7
- $ ./vercmp 1.2.6_alpha7-r3 1.2.6_alpha7-r7; echo
- 1.2.6_alpha7-r7
- $
复制代码
如果两个版本号中的任何一个不符合 Gentoo Policy 中的定义,vercmp 不打印任何内容并且向环境返回非零值。
请大家帮忙看一下:
1. 有没有办法用 shell 脚本实现?
2. 有没有更简单的实现?
3. 如果有兴趣,请您帮忙测试一下。
非常感谢。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|