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
    
     
	
	
    
    
	相关文档:
        
    
    Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
	
    
        
    
    Linux下的中文Latex
  
Latex(latex-project.org/)是Tex的扩展,是一种广泛的用于科学与工程领域的文字排版工具。特别在欧洲的大学,科研单位,几乎所有的论文,报告都是在Tex/Latex系列工具完成的。
目前,Tex/Latex正逐步被国内的科研人员接受。尤其是在windows平台下,已经成形的CTEX无疑是对Tex/Latex推广的极大促进 ......
	
    
        
    
    1、将Grub安装到u盘(通常需要在Linux中进行)
在Ubuntu9.10中安装grub2如下:
sudo grub-install --root-directory=/media/sdb1 /dev/sdb
##注解:上述命令中的路径名可能会不同(/media/sdb1中sdb1是u盘挂载后的文件名,视各人的具体情况而定)
 
2、从网上下载两个文件vmlinuz和initrd.gz
##你会发现其实在你所 ......
	
    
        
    
    linux进程控制-exec系列 说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是: #include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char ......
	
    
        
    
    1
、总结背景
在
linux
系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现
“command not found”
的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量
PATH
的设置问题,而
PATH
的设置也是在
linux
下定制环境变量的一个组成部分。 ......