`
诗意的栖居
  • 浏览: 268199 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

shell 有关命令行参数

 
阅读更多
通常调用UNIX程序的格式是:
command options files

一些与传递给shell的参数相关的变量:
$# 命令行参数的个数
$? 调用命令的返回值
$$ 当前进程的进程号
$! 最后一个后台命令的进程号
$0 命令行的第一个参数,也就是命令名
$n 命令行的第n个参数,如果要取超过9个参数${n}
$* 所有的命令行参数,等于("$1 $2...")
"$@" 所有的命令行参数,等于("$1" "$2"...) (可以遍历)
$_ 前一个命令的最后一个命令行参数shell脚本的选项(option)解析

一般有两种主要的方法来分析传递给shell script的选项(option)。第一种方法是利用上述的shell variables和shift等命令,配合case命令来直接分析,在参数的个数比较少的情况下,这种方法比较常用。但如果参数数量比较多,就需要使用 getopts命令。

命令格式:

getopts option-string variable

getops解析命令行传递的参数的处理过程为:

1.getopts检查所有的命令行参数,查找以字符"-"开始的参数。

2.当找到以字符"-"开始的参数,将 "-"之后的字符串和option-string比较。

3.如果找到符合的匹配,则指定的变量被设置,否则,此变量被设成?字符。

4.重复1到3,直到所有的选项被处理。

5.当分析结束,getopts返回一个非0返回值,这常用做循环的判断条件。另外,当getopts结束时,它还将变量OPTIND设为最后一个参数的下标。

【注意】当选项后面需要跟一个附加的参数时(如-i intputfile),在option-string中需要在相应的option中加冒号(如i: )。在这种情况下,当解析到此选项时,附加的参数会被赋值给OPTARG变量。

举例:

下面的shell清单将能够分析:

-i 指定输入的文件名

-o 指定输出的文件名

-v 指定使用详细模式

shell script清单:

#!/usr/bin/ksh

USAGE="Usage: $0 '[-v] [-i] [filename] [-o] [filename]'"

VERBOSE=false

while getopts o:f:v OPTION ; do

case "$OPTION" in

o) OUTFILE="$OPTARG" ;;

i) INFILE="$OPTARG" ;;

v) VERBOSE=true ;;

\?) echo "$USAGE" ;

exit 1
;;

esac

done

echo Output file is $OUTFILE

echo Input file is $INFILE

echo In VERBOSE Mode:$VERBOSE
分享到:
评论

相关推荐

    shell脚本命令行参数简介

    之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入。 1、命令行参数向shell脚本...

    Shell(命令行解释器)

    开发的Shell程序支持以下命令: 1)cd ——将当前默认目录改变为。如果没有参数,则显示当前目录;如果目录不存在,会出现合适的错误信息提示。...9)其它的命令行输入被解释为程序调用,Shell创建并执行这个程序。

    shell命令行参数用法简介

    本文介绍了shell命令行参数的用法,对于普通脚本语言诸如perl python等,写一个脚本程序,包装命令行参数时,一般都是用getopt之类的;c语言也类似

    linux shell命令行参数用法详解

    本文介绍了linux shell命令行参数的具体用法,用户登录到Linux系统时,可以看到一个shell提示符,标识了命令行的开始。用户可以在提示符后面输入任何命令及参数。

    Linux shell 脚本 markdown文本编辑

    有关几个shell脚本的编写,如:编写一个shell脚本程序,它带一个命令行参数,这个参数是一个文件。如果这个文件是一个普通文件,则打印文件所有者的名字和最后的修改日期...加入了自己的注释理解

    shell获取命令行参数示例分享

    代码如下:#! /bin/bash ... 您可能感兴趣的文章:在Shell命令行处理JSON数据的方法shell学习教程获取命令行参数示例神奇的shell命令行输入与输出功能介绍Linux命令行和shell脚本编程宝典 Richard BlumP

    Shell-特殊变量 $0, $#, $*, $@, $?, $$和命令行参数

    , $$和命令行参数 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本...

    bash shell命令行选项与修传入参数处理

    本文介绍了bash shell命令行参数与命令行选项的操作方法,有关shell 命令行参数的实例教程,有需要的朋友参考下。

    linux-optparseBASH的简单命令行参数解析器

    optparse - BASH的简单命令行参数解析器

    linux shell命令行选项与参数用法详解

    本文介绍了linux shell中使用命令行选项与命令行参数的方法,在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景

    Shell $0, $#, $*, $@, $?, $$和命令行参数的使用

    特殊变量列表 变量 含义 $0 当前脚本的文件名 ...当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。...命令行参数 ...运行脚本时传递给脚本的参数称为命令行...命令行参数用 $n 表示,例如,$1 表示第一个参

    shellescape:转义任意字符串以用作命令行参数

    在已知Go程序的输出将附加到Shell程序的命令行参数的上下文中/在其中使用的情况下,此功能可能会有所帮助。 这项工作的灵感来自Python原始包 。 用法 以下代码段显示了一种典型的不安全习惯用法: package main ...

    shell命令调用kettle,将生成的日志按月打包,并运行前一天的数据,并且参数传递冲抵kettle中的变量

    shell命令调用kettle,将生成的日志按月打包,并运行前一天的数据,并且参数传递冲抵kettle中的变量

    jupyter notebook 参数传递给shell命令行实例

    主要介绍了jupyter notebook 参数传递给shell命令行实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    通过Spring Shell 开发 Java 命令行应用

    命令行应用通常需要处理输入参数的传递和验证、输出结果的格式化等任务。Spring Shell 可以帮助简化这些常见的任务,让开发人员专注于实现应用的业务逻辑。本文对 Spring Shell 进行详细的介绍。 Spring Shell 入门 ...

    shell 基本语法

    从网上搜集的shell 基本语法 * 1 合理使用注释 * 2 变量赋值和引用 ... * 8 命令行参数 * 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 * 10 脚本调试

Global site tag (gtag.js) - Google Analytics