易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux Shell编程step by step 文本文件最后两行相减

作者:fbysss
msn:jameslastchina@hotmail.com 
blog:blog.csdn.net/fbysss
声明:本文由fbysss整理编写,转载请注明出处
关键字:shell编程
背景
        同事求助。
需求
      一个文本文件,要得到最后一行与倒数第一行相减的结果。
测试文本
#vi test.txt
内容如下:
     10
     7
     9
     1
     6
脚本
$vi rowSubstract.sh
内容如下:
#脚本注解,用于指明脚本类型是bash。这样,能保证不在bash的脚本环境,执行也没有问题。
#查看当前脚本环境:echo $SHELL。或者简单使用ps命令也可以。
#在linux下, #!/bin/sh和 #!/bin/bash几乎是一样的。
#!/bin/sh 
#参数个数检查
#其中,$0为命令本身,$1-$n为参数,$#为参数个数
#if 和 fi成对进行判断
#if后面、[右边和]左边都必须有空格,then 前面需要有分号;
#如果不满足条件,返回一个状态码(必须在0-255之间),一般正确的返回0,错误的返回其他数字
#判断数字,必须使用eq ne gt lt等逻辑运算符,如果是字符串,则要使用=或者== ,!= ,>= ,<=来判断
if [ $# ne 1 ] ; then
echo 'useage:$0 [filename]'
exit 1
fi
#参数有效性检查,注意感叹号!前后都要有空格,表示逻辑取反。-f 表示是否存在这个文件 -d判断目录。
if [ ! -f $1 ] ;then
    echo 'file ' $1 'not found,please check the filename.'
    exit 2;
fi
#得到文本行数,其中$1为脚本的第一个参数。依次类推,$n为第n个参数 ;wc -l用来统计行数
#``中间的内容,相当于去执行里面的命令,得出一个结果
rowcount=`cat $1|wc -l`
lastrowvalue=`tail -1 $1`#得到最后一行的内容
seclastrownum=`expr $rowcount - 1`#得到倒数第二行的行号,其中,expr 为表达式运算,运算符左右都要有空格,变量等号和赋值之间不要有空格
seclastrowvalue=`sed -n $seclastrownum'p' $1`#得到倒数第二行的内容。其中,$num'p' 的形式是为了连接变量和p命令
echo `expr $lastrowvalue - $seclastrowvalue#最后一行减去倒数第二行数值的运算结果
$chmod 755 rowSubstract.sh
$./rowSubstract.sh test.txt
结果为
5


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

Linux netfilter源码分析(4)


四、nf_hook_ops 钩子的注册
在filter表的初始化函数static int __init init(void)中除了有一个nf_register_hook函数注册一个tables外,还由nf_register_hook函数注册了3个hook
 
4.1        nf_hook_ops数据结构 netfilter.h
struct nf_hook_ops
{
      ......

Linux netfilter源码分析(6)

转贴自:http://alexanderlaw.blog.hexun.com/8968944_d.html
六、 扩展的match
 
6.1 do_match函数  ip_tables.c
do_match通过IPT_MATCH_ITERATE宏来调用,
IPT_MATCH_ITERATE是在ipt_do_table函数中调用的宏
IPT_MATCH_ITERATE(e, do_match,
         &nb ......

Linux环境进程间通信(五)(下)


Linux环境进程间通信(五):
共享内存(下)
文档选项
<tr
valign="top"><td width="8"><img alt="" height="1" width="8"
src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" wid ......

Linux环境下判断服务器是否正常关机

Linux环境下判断服务器是否正常关机
2009-05-17  来自:ZDNet     收藏
系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判断是不是非正常关机。
系统启动的时候生成一个文件,正常关机的时候则删除这个文件,则可以根据系统开机时有没有那个文件来判 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号