shell 中利用getopts

[[email protected] shell]# cat getopts.sh

#!/bin/bash

#date=2014-09-16

#is to practice  the getopts

while getopts "a:bc" arg(:前面的变量是一定要跟参数的)

do

case $arg in

a)

echo "a‘s arg:$OPTARG"

;;

b)

echo "b"

;;

c)

echo "c"

;;

?)

echo "unkown argument"

exit1

;;

esac

done

[[email protected] shell]# ./getopts.sh -b

b

[[email protected] shell]# ./getopts.sh -c

c

[[email protected] shell]# ./getopts.sh c

[[email protected] shell]# ./getopts.sh -a /root/

a‘s arg:/root/

如果不加参数的话会报错的。

[[email protected] shell]# ./getopts.sh -a

./getopts.sh: option requires an argument -- a

unkown argument

./getopts.sh: line 18: exit1: command not found

时间: 2024-11-14 19:01:09

shell 中利用getopts的相关文章

shell中利用ftp 上传文件夹功能

我们知道ftp 只能用来上传或者下载文件,一次单个或者多个,怎么实现将文件夹的上传和下载呢? 可以利用先在remote ip上建立一个相同的文件夹目录,然后将文件放到各自的目录中去 1.循环遍历出要上传的文件夹中的文件夹目录 2.遍历出每个文件夹下的文件 3.逐一上传文件 ftp 命令 图中有众多的交互,我们不想让他显示这些交互 可以使用参数 屏蔽掉 ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize] [computer

shell 中getopts 的应用

该语句的格式为: getopts一般格式为: getopts option_string variable 其中option_string中包含一个有效的单字符选项.若getopts命令在命令行中发现了连字符,那么它将用连字符后面的字符同 option_string相比较.若有匹配,则把变量variable的值设为该选项 .若无匹配,则variable设为?.当getopts发现连字 符后面没有字符,会返回一个非零的状态值.Shell程序中可以利用getopts的返回值建立一个循环. 有时侯选项

使用getopts处理shell中的输入参数

在编写shell脚本中,经常要处理一些输入参数,在使用过程中发现getopts更加方便,能够很好的处理用户输入的参数和参数值. getopts用于处理用户输入参数,举例说明使用方法: while getopts :a:b:cdefg opt; do case $opts in a) do sth; ...... cde) do another; esac done 几个重要变量: OPTIND:getopts使用OPTIND作为索引,来处理下一个需要处理的参数,记录当前的状态. OPTARG:在

Linux shell中getopts命令学习--实现一个添加yum源的脚本

getopts是bash shell的内建命令,作用是在shell脚本中解析命令行传递.传递给函数或传递给另一个调用的shell脚本的位置参数(选项或参数,后面会讲解,getopts只支持短选项,若要解析长选项请参考getopt). getopts命令语法: getopts optstring name [arg] 相关的术语: 选项(option):GNU风格的命令选项,如:-x,-y等减号加上单个字母的为短选项:--help为长选项: 选项的参数:某些选项之后必须尾随参数,如:-f xxx.

[ SHELL编程 ] shell中各种括号的使用方法

转载自:http://www.jb51.net/article/60326.htm 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern)现在分

shell中$(( )) 与 $( ) 还有${ }的区别

http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "la

shell中的数组

编译执行bash的方法 (1)bash  test.sh (2) chmod 755 test.sh   #给bash赋予可执行的权限   r-4  w-2  x-1 ./test.sh bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 定义数组 在Shell中,用括号来表示数组,数组元素用"空格"符号分割开.定义数组的一般形式为:    array_n

Linux shell中的I/O重定向相关(转)

1. 基本概念(这是理解后面的知识的前提,请务必理解)  a. I/O重定向通常与 FD有关,shell的FD通常为10个,即 0-9: b. 常用FD有3个,为0(stdin,标准输入).1(stdout,标准输出).2(stderr,标准错误输出),默认与keyboard.monitor.monitor有关: c. 用 < 来改变读进的数据信道(stdin),使之从指定的档案读进: d. 用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案: e. 0 是 &

49 shell中的冒号

 1.表示永真,相当于TRUE关键字. colon.sh脚本利用while循环打印1到10的整数,while循环的条件使用了冒号,此时冒号就表示永真,即while循环永远执行下去,while循环体内使用if/then结构判断跳出while循环的条件. 1 #!/bin/bash 2 3 i=0 4 while :                          #冒号相当于TRUE 5 do 6     if ((i >= 10))                 #i大于等于10时,跳出