码迷,mamicode.com
首页 > 其他好文 > 详细

bash组织成树数据结构

时间:2015-10-02 18:43:10      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

君子也非独占,善假于物!bash也因此。
昨天晚上,今天早上世界杯很精彩。晚上醒来看到不断地居住的电话。早上没有喝的水开始赞赏在英国和意大利的对决。也TM精彩,最后生下了罗马文化。意大利伊特鲁里亚文化获得胜利,我甚至会很高兴,然后看接下来的比赛,本田圭佑的进球很不可思议,原本打算加班。研究起了复杂六度切割网络。有点乱,可是还是在下午的时候悟出了一点什么。小小睡在旁,心里想着怎么把bash组织成一棵树,由于我实在不想也没有能力使用Python来创建所谓的高级的数据结构,比方树。


       树。一个人类的常规组织形式。一个将近一万年为人类所用的数据类型。现在被映射进计算机数据结构的时候被赋予了独特的地位。二叉树,堆,AVL树,红黑树。256叉树。Radix树。...不一而足,差点儿全部的编程语言都内置了这些树的数据结构类型,即便不是如此,也会有非常多狂热的开发者组建一系列的所谓库来实现这些树的接口。可是除了一种语言,即Shell,对于LInux而言就是bash(我从来不用其他的shell,尽管历史渊源深厚。但历史不是现实。这是理解历史的优点...),为什么没有人开发Linux的树型数据结构呢?...shell是一种粘合语言。不是一种实现逻辑的语言。这或许就是根本??假设世界杯讲解员在讲解西班牙VS荷兰对决的时候,在荷兰进球前一直倾向于西班牙会赢,无异于低水平的赌博,实际上当我说没有人实现bash版本号的树型数据结构的时候,造就有人发在了github上了,仅仅是我这个傻BI没有找到而已,所以我不再依照长平之战的原则来评论此事。我仅仅是试着去做,由于假设我做不到,将是我工作的重大失职,就如同西班牙球员将球送进自己的球门一样...bash为何没有简单的办法实现树型结构。甚至没有实现不论什么的数据结构,原因在于,它不须要!


       君子善假于物也。bash本身没有tree的语义,可是UNIX的文件系统正是tree组织的,而bash操作UNIX文件夹/文件简直就是如鱼得水,我突然想到了Linux内核的make menuconfig是怎么找到那么多的config的。其实不须要一个统一的congifg。仅仅须要各个文件文件夹自己构建自己的config项就能够了。make的时候自然会遍历文件系统,然后取出config项目。仅此而已,Linux的诸如make menuconfig命令不须要自己实现一套遍历文件夹的算法。

假设我想实现一个树型的操作序列,比方在ECC算法下的TLS分别用SM1和SM4来进行对称加密。使用ECC或者SM2进行认证(即所谓的算法套间,cipher-suit)。怎么办?依照传统的编程语言。我要内建一个struct,实现一个树。可是,可是现代的复杂问题已经不同意你去编写和编译所谓的结构体了(关键在于编译)。问题的根本在于你是在想用这些语言解决你的问题(去年我..一个表,我过不去的坎)还是你想研究编程语言本身。假设是后者,请略过此文,但假设不是。我认为C/C++/Java已经不适合了,Python,Perl。Bash更合适。由于这些语言能够让你不必去思想怎样构建一棵树的问题,以Python为例,不必多说。我懂得没你多,可是以bash为例呢?由于没有什么库能够使用。你瞬间呆住了!...我一直以来也是这样考虑的,,但突然,我不这么认为了,我认为bash能够利用的库(Library)不是没有,而是非常多。多到什么程度?答案是整个系统!
       Linux的文件夹系统是一个树型结构。bash能够非常好的利用它!bash尽管没有内建不论什么结构。可是却能够利用全部的其他结构。Linux内核的设计者已经想到了这一点。看一下sysfs和procfs吧。当你使用cat/echo等命令来操作的时候,是不是认为比自己写代码更轻松些呢(尽管少了自己炫技巧的机会...)?不要把文件系统当作一个龌龊的IPC机制,实际上你能够变通。你能够将内存的好几G。比方1G全部构建一个ramfs。然后在里面尽情搞文件操作吧。不会有不论什么性能损失,记住。文件IO仅仅是一个接口而已(请别跟我扯系统调用会影响效率。或许能够使用mmap...书看多了,课上傻了...)!文件接口是一个非常猛的东西,它能够内建你无法实现的数据结构,比方树。

我没有必在脚本内部维护一棵树,我仅仅须要建立一个树型的文件文件夹系统就可以,然后利用丰富的文件系统IO命令来蹂躏它,假设你不想让我的额外文件系统污染你那清纯的文件系统,我就建立一个ramfs,我仅仅是将内存格式化了而已。
       bash不是编程语言,然而它又是全部的编程语言,它能够粘合全部的语言写成的逻辑。其内恰性远远超过诸如Python,Perl,PHP之类的语言。它是UNIX内建的。bash。它实际上就是UNIX本身的编程语言,UNIX本身就是一个库!

我不是反对现代软件project,我仅仅是认为在某些领域,某些地方,某些日常事务,软件project确实走偏了方向。
       大师出手的时候不知道自己用的招数的名字。我在想,那些所谓精通设计模式的人们。你们可曾知道。你们比设计模式领域的大师更猛,由于当这些大师在做一个系统的时候,实在不知道自己在使用什么模式,可是你可能更知道。突然想到了《依天屠龙记》中张三丰问张无忌,直到张无忌的功夫口诀全部忘记之后。才同意其出战,精髓所在!
      花式足球竞赛进行中,高手都是一帮跳街舞的人,技术太TMD炫了,但在世界杯中除了C罗差点儿没有人炫花式技巧,于是我以前想,花式足球不有用。仅仅适合表演,可是看了世界杯大牌明星这些人的花式足球表演后,我知道了,有些技乔只为炫技,但本质不包含在所谓的能量闪光尖。


版权声明:本文博主原创文章,博客,未经同意不得转载。

bash组织成树数据结构

标签:

原文地址:http://www.cnblogs.com/yxwkf/p/4852425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!