`
诗意的栖居
  • 浏览: 273741 次
  • 性别: 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脚本...

    MFC中命令行参数处理的实现.pdf

    MFC提供了一套内置的命令行参数处理机制,用于解析标准的shell命令(如DDE、文件打开等)。这一机制主要通过`CCommandLineInfo`类实现,该类定义了一系列成员变量和成员函数来支持命令行参数的解析与处理。 ##### `...

    传带空格的命令行参数

    在探讨如何传递包含空格的命令行参数时,我们首先需要理解命令行参数的基本概念以及在实际编程场景中如何正确地处理这些参数。本篇内容将深入解析如何在不同的编程环境中处理带有空格的命令行参数,并通过示例来解决...

    实现一个简单的shell(命令行解释器),类似于bash, csh等。

    在IT领域,shell是操作系统与用户交互的一种接口,它允许用户通过命令行界面执行系统级操作。本课程设计的目标是创建一个简单的shell程序,模仿像bash和csh这样的经典Unix shell。这个项目不仅有助于理解shell的基本...

    Go-shellexec这个Go提供了跨平台类似shell的命令行执行

    这个模块的主要目的是解决在不同操作系统上执行命令时遇到的兼容性问题,使得Go程序可以更加方便地处理命令行参数和环境变量,同时保持与系统shell的交互一致性。 1. **shell命令执行的挑战**: 在不同的操作系统...

    Shell(命令行解释器)

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

    VC++获取系统注册文件的打开命令行参数

    这段代码首先打开了`.txt`文件类型的注册表项,然后遍历`shell`下的所有动作(如“打开”),并获取相应的命令行参数。请注意,这只是一个基础示例,实际应用中可能需要处理更多异常情况,并且应确保对注册表的访问...

    linux shell命令行参数用法详解

    本文深入探讨了Linux Shell命令行参数的使用方法,这对于熟练掌握Linux系统的管理至关重要。 首先,我们了解命令行的基本结构。当用户登录Linux系统后,会看到一个Shell提示符,如"$",这标志着用户可以在此输入...

    Linux shell 命令行及脚本编程实例详解

    本文将深入探讨Linux Shell命令行及脚本编程的相关知识点。 1. **基础命令**: - **ls**: 列出目录内容。 - **cd**: 更改当前工作目录。 - **pwd**: 显示当前工作目录。 - **touch**: 创建新文件或更新文件...

    shell命令行参数用法简介

    Shell命令行参数是控制脚本或程序运行的关键元素,它们允许用户在运行时自定义行为。在Shell脚本中,参数分为两类:位置参数和内部参数。 位置参数是指由用户提供给脚本的一系列值,这些值按照它们在命令行上出现的...

    PHP 命令行参数详解及应用

    通过这些命令行参数,开发者可以将PHP脚本作为shell命令来使用,例如`php -q 文件名.php`可以直接运行PHP脚本,而`php -s 文件名.php`则可以将PHP源代码以彩色HTML的形式展示出来。此外,结合PHP的ODBC功能,可以在...

    Linux shell 脚本 markdown文本编辑

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

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

    `optparse`是一个用于Bash shell脚本的简单命令行选项解析器,它可以帮助开发者更加规范和方便地处理命令行参数。在这个场景中,我们将深入探讨`optparse`的使用、工作原理以及如何将其集成到你的Bash脚本中。 `...

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

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

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

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

    Linux 实现简易的 Shell 命令行解释器.docx

    Linux 实现简易的 Shell 命令行解释器 Linux 实现简易的 Shell 命令行解释器是实现一个基本的 Shell 解释器,通过获取命令行、解析命令行、建立子进程、执行命令和等待子进程结束等步骤来实现命令行解释器的功能。...

Global site tag (gtag.js) - Google Analytics