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

Linux Bash Shell学习(十四):命令行选项


  本文也即《Learning the bash Shell》3rd Edition的第六章Command-Line Options and Typed varilables之读书笔记之一,但我们将不限于此。
  在Linux命令中经常带有参数例如[-option]等等。在命令行中可能有0个或者多个这些选项。我们在之前学习了位置参数,包括$1,$2,$3…,$*,$#,参见Linux Bash Shell学习(七):shell编程基础——运行Shell脚本、function
。这些位置参数都是只读。
移位Shift
  shift提供对只读的位置参数的移位赋值的操作,将1=$2,2=$3,…,可以使用shift N来制定移位的数目,例如shift 3,则表示1=$4,2=$5,…。如果命令行中有[-options]的,我们可以对他们进行判断,并进行移位处理。一个简单例子如下:
if [ $1 = -o ]; then

   
[process the -o option] 

    shift

fi

[normal processing of arguments...]
  下面给两个例子,介绍如何用shift来检查参数。
#例子一:有可能有-N的参数,且为第一参数。如果第一个参数是-N,记录在howmany中,进行shift,将$2置于$1的位置,如果第一个参数是-X,但X不是数字,给出警告语句,否则howmany使用缺省的-10。


function test1

{

    #对于grep,^表示从匹配行首,$表示匹配行尾,在这里表示整个$1匹配,而不是部分匹配,*表示前面的字符匹配0个或者多个,下面[0-9]*即表示后面跟着0个或者多个数字,[0-9][0-9]*表示数字后面有0个或多个数字。故echo $1 | grep '^-[0-9][0-9]*$'表示匹配格式-N,N为数字。grep的具体用法看参见http://www.yesadmin.com/301/135287/index.html
 
    #$(command)表示命令执行的内容。

    #-n str,字符串不为null,长度大于零

    #请注意双引号的使用,表示这是一个需要检查的str
   
    if [ -n "$(echo $1 | grep '^-[0-9][0-9]*$')"
]; then

        howmany=$1

       shift

    elif [ -n "$(echo $1 | grep '^-')" ]; then

  &nbs


相关文档:

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux software

程序是用于执行特定任务的计算机指令组合。程序可以用汇编语言,一种非常低级的计算机语言来编写,也可以使用和机器无关的高级语言,比如 C
语言编写。操作系统是一个特殊的程序,允许用户通过它运行应用程序,比如电子表和文字处理等等。本章介绍了基本的编程原理,并简介操作系统的目的和功能。
2.1 Computer Languages ......

一份linux笔试题目

一.填空题
1. 在Linux系统中,以       方式访问设备 。
2. Linux内核引导时,从文件       中读取要加载的文件系统。
3. Linux文件系统中每个文件用       来标识。
4. 全部磁盘块由四个部分组成,分别为   ......

[转]Linux 汇编语言开发指南

Linux 汇编语言开发指南
级别: 初级
肖文鹏 (xiaowp@263.net), 北京理工大学计算机系硕士研究生
2003 年 7 月 03 日
汇编语言的优点是速度快,可以直接对硬件进行操作,这对诸如图形处理等关键应用是非常重要的。Linux 是一个用 C 语言开发的操作系统,这使得很多程序员开始忘记在 Linux 中还可以直接使用汇编这一底层 ......

Linux/Unix环境下的make命令详解


  无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发
还是安装应用软件,我们都经常要用到make或make
install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和
makefile工具就可以简洁明快地理顺各个 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号