文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Shell学习15-向脚本传递参数

Shell学习15-向脚本传递参数

时间:2010-08-21  来源:soqsoq

Shell学习15-向脚本传递参数

2010.08

1. shift命令

向脚本传递参数时,有时需要将每一个参数偏移以处理选项,这就是 s h i f t命令的功能。

它每次将参数位置向左偏移一位,下面用一段简单脚本详述其功能。

使用s h i f t命令来处理传递到脚本的每一个参数。

#!/bin/sh

Loop=0

While [ $# -ne 0 ]

Do

       Echo $1

       Shift

Done

 

2. 命令行输入的最后一个参数

虽然还没有讲e v a l命令, 如果需要知道命令行中输入的最后一个参数 (通常是一个文件名) ,可以有两种选择:使用命令eval echo \$$#;使用s h i f t命令:shift 'expr $# -2'。

 

3. getopts

g e t o p t s一般格式为:

getopts  option_string variable

g e t o p t s读取o p t i o n _ s t r i n g,获知脚本中使用了有效选项。

g e t o p t s查看所有以连字符开头的参数,将其视为选项,如果输入选项,将把这与o p t i o n _ s t r i n g对比,如果匹配发现,变量设置为 O P T I O N,如果未发现匹配字符,变量能够设置为?。重复此处理过程直到选项输入完毕。

g e t o p t s接收完所有参数后,返回非零状态,意即参数传递成功,变量 O P T I O N保存最后处理参数,一会儿就可以看出处理过程中这样做的好处。

 

4. 使用getopts指定变量取值

有时有必要在脚本中指定命令行选项取值。 g e t o p t s为此提供了一种方式,即在

o p t i o n _ s t r i n g中将一个冒号放在选项后。例如:

getopts ahfvc: OPTION

上面一行脚本指出,选项 a、h、f、v可以不加实际值进行传递,而选项 c必须取值。使用

选项取值时,必须使用变量 O P TA R G保存该值。如果试图不取值传递此选项,会返回一个错误信息。错误信息提示并不明确,因此可以用自己的反馈信息屏蔽它,方法如下:

将冒号放在o p t i o n _ s t r i n g开始部分。

while getopts :ahfgvc:  OPTION

#!/bin/sh

ALL=false

HELP=false

FILE=false

VERBOSE=false

COPIES=0

While getopts :ahfgvc: OPTION

Do

       Case $OPTION in

a)       ALL=true

Echo “ALL is $ALL”

;;

       h)HELP=true

       echo “HELP is $HELP”

       ;;

       f)FILE=true

       echo “FILE is $FILE”

       ;

       v)VERBOSE=true

       echo “VERBOSE IS $VERBOSE”

       ;

c)COPIES=$OPTARG

Echo “COPIES IS $COPIES”

;

\?)

Echo “`basename $0` -[a h f v] –[c values] file” >&2

Esac

Done

输入错误的:

$getopt1 –ah –c

输入正确的

$getopt1 –ah –c 3

 

选 项              含 义

- a                  扩展

- c                              计数、拷贝

- d                              目录、设备

- e                               执行

- f                               文件名、强制

- h                              帮助

- i                               忽略状态

- l                               注册文件

- o                              完整输出

- q                              退出

- p                              路径

-v                               显示方式或版本

 

 

相关阅读 更多 +
排行榜 更多 +
方块拼凑最新版 v1.0 安卓版

方块拼凑最新版 v1.0 安卓版

休闲益智 下载
方块拼凑最新版 v1.0 安卓版

方块拼凑最新版 v1.0 安卓版

休闲益智 下载
愤怒的小鸟爆破安卓版 v2.7.0 手机版

愤怒的小鸟爆破安卓版 v2.7.0 手机版

飞行射击 下载