SunBo

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页

2010年3月4日

摘要: 断言(assert宏)的副作用 我的确对#define的很多种用法都深恶痛绝,唯对定义在中的assert宏情有独钟。说句实话,我鼓励大家多多使用它--前提是用好它。但问题就在于能不能用好它。 实现的方式固然百家争鸣,不过assert宏多数情况下和下面的定义相差不远: gotcha28/myassert.h #ifndef NDEBUG #define assert(e) ((e) / ? ((void)0) / :__assert_failed(#e,__FILE__,__LINE__) ) #else #define assert(e) ((void)0) #endif 如果ND... 阅读全文
posted @ 2010-03-04 09:54 SunBo 阅读(1924) 评论(0) 推荐(0) 编辑

2010年2月2日

摘要: 文件循环程序或许您是想将所有发出的邮件保存到一个文件中的人们中的一员,但是在过了几个月以后,这个文件可能会变得很大以至于使对该文件的访问速度变慢。下面的脚本rotatefile可以解决这个问题。这个脚本可以重命名邮件保存文件(假设为outmail)为outmail.1,而对于outmail.1就变成了outmail.2 等等等等... #!/bin/sh # vim: set sw=4 ts=4 et: ver="0.1" help() { cat < rotatefile -- rotate the file nameUSAGE: rotatefile [-h] f 阅读全文
posted @ 2010-02-02 09:51 SunBo 阅读(219) 评论(0) 推荐(0) 编辑

摘要: 实例)现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意。这时候,在写一个新的脚本时我们只需要执行一下copy命令:cp framework.sh myscript 然后再插入自己的函数。让我们再看两个例子:二进制到十进制的转换脚本b2d 将二进制数 (比如 1101) 转换为相应的十进制数。这也是一个用expr命令进行数学运算的例子:1 #!/bin/sh2 #vim:setsw=4ts=4et:3 help()4 {5 cat<6 b2h--conve 阅读全文
posted @ 2010-02-02 09:48 SunBo 阅读(277) 评论(0) 推荐(0) 编辑

2010年1月29日

摘要: 4)函数如果您写了一些稍微复杂一些的程序,您就会发现在程序中可能在几个地方使用了相同的代码,并且您也会发现,如果我们使用了函数,会方便很多。一个函数是这个样子的:functionname() { # inside the body $1 is the first argument given to the function # $2 the second ... body } 您需要在每个程序的开始对函数进行声明。下面是一个叫做xtitlebar的脚本,使用这个脚本您可以改变终端窗口的名称。这里使用了一个叫做help的函数。正如您可以看到的那样,这个定义的函数被使用了两次。#!/bin/sh 阅读全文
posted @ 2010-01-29 09:46 SunBo 阅读(224) 评论(0) 推荐(0) 编辑

2010年1月28日

摘要: 3) 流程控制1.if "if" 表达式 如果条件为真则执行then后面的部分:if ....; then .... elif ....; then .... else .... fi大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。[ -f "somefile" ] :判断是否是一个文件[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限[ -n "$v 阅读全文
posted @ 2010-01-28 09:59 SunBo 阅读(203) 评论(0) 推荐(0) 编辑

摘要: 1.1.5 Shell命令和流程控制在shell脚本中可以使用三类命令:1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。常用命令语法及功能echo "some text": 将文字内容打印在屏幕上ls: 文件列表wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数cp sourcefile destfile: 文件拷贝mv oldname newname : 重命名文件或移动文件rm file: 删除文件grep  阅读全文
posted @ 2010-01-28 09:52 SunBo 阅读(217) 评论(0) 推荐(0) 编辑

摘要: 1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行。要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行1.1.2 注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。1.1.3 变量在其他编程 阅读全文
posted @ 2010-01-28 09:46 SunBo 阅读(196) 评论(0) 推荐(0) 编辑

2010年1月27日

摘要: indent_find.sh 通过find命令,优点:代码简单,缺点:没有显示正在整理的文件1 #!/bin/sh2 #################################################################################3 #Filename:IndentC/C++codeaccordingtoK&R4 #Author:SunYubo5 #Created:2010-1-256 #Description:IndentC/C++codeaccordingtoK&Rbyfind7 #Usage:indent.sh[PATH] 阅读全文
posted @ 2010-01-27 09:51 SunBo 阅读(327) 评论(0) 推荐(0) 编辑

2010年1月23日

摘要: 观长城骑行线1、 健翔桥-昌平-居庸关-八达岭-南口-阳坊-颐和园路线描述: 平路占大部分,山路主要集中在南口到八达岭,居庸关附近的坡度出现陡坡,由于旅游区要格外注意游人和车辆。沿途景致: 坦克博物馆、居庸关、八达岭。骑行强度: 22、 健翔桥-昌平-长陵-解字石-永宁-延庆-八达岭-南口-阳坊-颐和园路线描述: 从长陵开始有连续的13公里盘山公路到解字石,经过上下盘山公路到达永宁,至此山区公路结束,此段强度相对来说比较大。沿途景致: 明十三陵、电影《一个都不能少》中出现的大庄科乡、八达岭。骑行强度: 2亲水路线3、 奥体北门-利水桥-小汤山-铁壁银山-九渡河-黄花城-四海镇路线描述: 从兴寿 阅读全文
posted @ 2010-01-23 11:13 SunBo 阅读(2150) 评论(0) 推荐(0) 编辑

2010年1月15日

摘要: Sunirvana 标签: Source Insight中一些好用宏的使用1、 把indent.em、NetEyeutils.em、utils.em放到C:/Documents and Settings/Administrator/My Documents/Source Insight/Projects/Base目录下 2、 打开Source Insight的Base工程,把上述3个宏文件加入到工程中 3、 选取Option -> MenuAssignment,在Command下输入Marco查找、选取宏,然后在Menu -> Menu Contends选取要把宏绑定在哪个系统选. 阅读全文
posted @ 2010-01-15 09:57 SunBo 阅读(1583) 评论(0) 推荐(0) 编辑

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页