Ksh93 高级特性简介(2)

来源:developerWorks 中国 作者:陈 剑
  

注:上述的 pattern 是正则表达式





一个例子

问题 : 给定 m 和 n, 假设 m>=n, 从 m 中取 n 的排列可能有 P(m,n) 个 , 写一个 program 列出所有的排列可能

解题思路:将所有排列可能表示为一棵树,遍历此树,当到达叶子节点时,就得到了排列的一个解。图一给出了 P(4,4) 的某个分支,这个分支包含了以 2 打头的所有排列共 6 个。


图一 . P(4,4) 树的一个分支
P(4,4)树的一个分支

代码实现:见附件permutation.sh,它使用了递归和 ksh93 的两个功能:nameref 和 c 风格的 for 循环 .





结语:

除了以上所列功能外,ksh93 的高级功能还有 Discipline functions,这项功能对 self debug 时特别有用,鉴于篇幅,这里就不再详细描述了,有兴趣的读者可以参考 ksh93 手册。

总之,ksh93 的这些高级功能提供相对于其他 shell 的竞争优势,从而让 ksh 在 UNIX 下继续保持旺

盛的生命力。(责任编辑:A6)


时间:2009-07-16 16:53 来源:developerWorks 中国 作者:陈 剑 原文链接

好文,顶一下
(4)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量