Linux C编程与Shell编程在开发实用工具方面的相同点总结

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1712280

以whois包中的mkpasswd的源码mkpasswd.c文件为例,   
两者都需要做的事情:    
    (1)在程序运行前需要满足其运行环境,包括声明需要使用哪些库哪些文件,例如C中的条件编译,Shell编程中的部分条件判断,如文件是否存在、是否可执行    
    (2)具备灵活性和可移植性:充分运用宏定义或全局变量(Shell专用),尽管C中许多宏定义不仅仅用于程序运行还用于程序移植,Shell中的许多全局变量也可用于脚本的移植    
    (3)都需要做参数(argument)声明:允许用户给程序传入那些参数,不允许用户传入那些参数;哪些参数是不可同时使用,哪些参数必须同时使用    
    (4)定义程序是否接受长选项(--sargv)    
    (5)对用户的输入做过滤判断处理,各种输入情况的判断处理、非法输入和特殊字符的处理    
    (6)控制用户使用逻辑和避免流程缺陷:保证用户输入不会超出程序设计预期,如输入(字符串长度、数字长度)溢出,保证流程流向并正确处理和结束    
    (7)与操作系统结合紧密:符合操作系统规范和操作系统哲学,如恰当的函数返回值、程序退出返回值、接受管道、区分stdin、stdout、stderr等    
    (8)函数调用或外部程序调用,需要捕获异常并处理异常,来自用户或系统的中断处理、信号处理    
    (9)执行核心方法前做好一切事情    
    (10)main函数尽可能的清晰精短、注意功能的拆分,保持函数原子性,尽可能的将函数复用,使用必要的缩进    
    (11)站在巨人的肩膀上,避免重复造轮子,使用并保持一致的编程风格    
    (12)程序运行完,擦好自己的屁股,程序运行前后充分与用户交互    
    (13)适当卖弄一下自己的编程技巧和编程艺术    
    (14)有时需要注意语言国际化问题    
    (15)声明协议、许可和较为详细注释、TODO,允许他人使用,改写,再创作等    
    (16)接受bug,留下自己的联系方式,哈哈!

tag:Linux C编程,Linux哲学,UNIX哲学,Linux shell编程,Linux编程思想

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1712280

时间: 2024-07-28 21:14:10

Linux C编程与Shell编程在开发实用工具方面的相同点总结的相关文章

跟老男孩学Linux运维:Shell编程实战.

Linux/Unix技术丛书 跟老男孩学Linux运维: Shell编程实战 老男孩 著 图书在版编目(CIP)数据 跟老男孩学Linux运维:Shell编程实战 / 老男孩著. -北京:机械工业出版社,2017.1 (Linux/Unix技术丛书) ISBN 978-7-111-55607-7 I. 跟- II. 老- III. Linux操作系统 IV. TP316.85 中国版本图书馆CIP数据核字(2016)第313248号 跟老男孩学Linux运维:Shell编程实战 出版发行:机械工

跟老男孩学Linux运维:Shell编程实战1.3 如何才能学好Shell编程之“老鸟”经验谈

1.3 如何才能学好Shell编程之"老鸟"经验谈 学好Shell编程的核心:多练→多思考→再练→再思考,坚持如此循环即可! 从老男孩IT教育毕业的一名学生曾在工作多年后返校分享了一篇"如何学好Shell编程"的讲稿,经过老男孩的整理后和读者分享如下. (1)掌握Shell脚本基本语法的方法 最简单有效的方法就是将语法敲n+1遍.为什么不是n遍呢?因为这里的n指的是你刚开始为掌握语法而练习的那些天(21天法则),而1则是指在确定掌握语法后每天都要写一写.想一想,至少

跟老男孩学Linux运维:Shell编程实战2.6 Shell脚本的建立和执行

2.6 Shell脚本的建立和执行 2.6.1 Shell脚本的建立 在Linux系统中,Shell脚本(bash Shell程序)通常是在编辑器vi/vim中编写的,由UNIX/Linux命令.bash Shell命令.程序结构控制语句和注释等内容组成.这里推荐用Linux自带的功能更强大的vim编辑器来编写,可以事先做一个别名alias vi='vim',并使其永久生效,这样以后习惯输入vi的读者也就可以直接调用vim编辑器了,设置方法如下: [root@oldboy ~]# echo "a

跟老男孩学Linux运维:Shell编程实战1.2 学好Shell编程所需的基础知识

1.2 学好Shell编程所需的基础知识 本节首先来探讨一下在学习Shell编程之前需要掌握的基础知识,需要说明的是,并不是必须具备这些基础知识才可以学习Shell编程,而是,如果具备了这些基础知识,那么就可以把Shell编程学得更好,领悟得更深.如果只是想简单地了解Shell脚本语言,那么就无须掌握太多的系统基础知识,只需要会一些简单的命令行操作即可. 学好Shell编程并通过Shell脚本轻松地实现自动化管理企业生产系统的必备基础如下: 1)能够熟练使用vim编辑器,熟悉SSH终端及".vi

跟老男孩学Linux运维:Shell编程实战2.4 脚本语言的种类

2.4 脚本语言的种类 2.4.1 Shell脚本语言的种类 Shell脚本语言是弱类型语言(无须定义变量的类型即可使用),在Unix/Linux中主要有两大类Shell:一类是Bourne shell,另一类是C shell. 1.?Bourne shell Bourne shell又包括Bourne shell(sh).Korn shell(ksh).Bourne Again Shell(bash)三种类型. Bourne shell(sh)由AT&T的Steve Bourne开发,是标准的

跟老男孩学Linux运维:Shell编程实战.2

第3章 Shell变量的核心基础知识与实践 3.1 什么是Shell变量 1.?什么是变量 在小学或初中时,我们开始接触数学方程式,例如:已知x=1,y=x+1,那么y等于多少? 在上述问题中,等号左边的x和y当时被称为未知数,但在Shell编程里它们是变量名,等号右边的1和x+1则是变量的内容(变量的值).注意,这里的等号符号被称为赋值,而不是等号. 通过上面的例子可以得出一个变量概念的小结论:简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可

跟老男孩学Linux运维:Shell编程实战导读

前言 为什么要写这本书 目前全球正处于互联网+的时代,越来越多的传统企业都在通过互联网提供产品和服务,比如,互联网+教育.互联网+金融.互联网+电商.互联网+出租车.互联网+保险等,可以看到,几乎所有的产品.服务都能在网上找到.而支撑互联网的幕后英雄其实就是Linux(包括移动互联网在内),掌握Linux运维技术已经成为每一个IT技术人员的必备技能! 互联网+的时代下企业的网站流量呈爆炸式增长,如果你是运维人员,很可能要面对几十台.几百台.上千台甚至上万台的服务器设备,而对于企业来说,如何提高I

跟老男孩学Linux运维:Shell编程实战3.1 什么是Shell变量

Shell变量的核心基础知识与实践 3.1 什么是Shell变量 1.?什么是变量 在小学或初中时,我们开始接触数学方程式,例如:已知x=1,y=x+1,那么y等于多少? 在上述问题中,等号左边的x和y当时被称为未知数,但在Shell编程里它们是变量名,等号右边的1和x+1则是变量的内容(变量的值).注意,这里的等号符号被称为赋值,而不是等号. 通过上面的例子可以得出一个变量概念的小结论:简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可能还会包

跟老男孩学Linux运维:Shell编程实战1.1 为什么要学习Shell编程

如何才能学好Shell编程 1.1 为什么要学习Shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础.那么,Shell脚本