Shell处理用户输入参数:getopts

特殊变量提醒:

$# 记录命令行参数个数

$* 保存所有参数,并当做单个单词保存

$@ 保存所有参数,当做同一个字符串中的多个独立的单词

getopts 命令格式:

getopts optstring variable

有效字母都会列在optstring中,当前参数保存在 variable中

示例:


#!/bin/bash
while  getopts  :ab:c  opt
do
    case  "$opt" in
        a)
            echo  "Found the -a option";;
        b)
            echo  "Found the -b option,wiht value  $OPTARG";;
        c)
            echo  "FOund the -c option";;
        *)
            echo  "Unknown option :$opt";;
esac
done

测试

# sh test.sh  -a -b test -c
Found the -a option
Found the -b option,wiht value  test
FOund the -c option 
# sh test.sh  -d
Unknown option :?

选项字母要求有参数值的时候,在其后加一个冒号;

去掉错误消息的话,在optstring之前加一个冒号;

$OPTARG会保存参数值

出处:http://weipengfei.blog.51cto.com/1511707/1118695

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数
, echo
, option
, 参数保存
, 冒号
, getopt
, found
The
,以便于您获取更多的相关知识。

时间: 2024-08-28 11:47:53

Shell处理用户输入参数:getopts的相关文章

错误-linux的shell为何在输入参数时不对路呀

问题描述 linux的shell为何在输入参数时不对路呀 为何这个脚本输出的不是我$1 输入的文件,发现用cat $1也不行? 解决方案 sh yourfile.sh 文件绝对路径 eg: sh yourfile.sh /etc/ 解决方案二: 因为你的$1放在了引号中,所以当成普通字符串了. 解决方案三: echo 输出的是你$1文件的文件内容

验证用户输入的参数合法性的shell脚本_linux shell

今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,如下所示: #!/bin/sh # validAlphaNum - Ensures that input consists only of alphabetical # and numeric characters. validAlphaNum() { # Validate arg: returns 0 if all upper+lower+digits, 1 otherwise # Remove all unacceptable

对用户输入的判断的shell实现代码_linux shell

今天的案例是将 对用户输入的判断的 #!/bin/sh # validint -- Validates integer input, allowing negative ints too. function validint { # Validate first field. Then test against min value $2 and/or # max value $3 if they are supplied. If they are not supplied, skip these

神奇的shell命令行输入与输出功能介绍_linux shell

标准输入/输出和重定向,Linux发行版Fedora Core Linux,而Red Hat公司原来Red Hat Linux的开发团队也将继续参与这一发行版本的开发工作. 标准输入与输出 我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘:标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕.进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中.

dialog工具中,访问用户输入的结果为什么要重定向"标准错误流"?而不是“标准输出流”?

问题描述 dialog工具中,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 标题限制,完整问题为------dialog工具中,对于文本输入,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 看Neil Matthew著的<Linux程序设计>65页中关于dialog访问用户输入结果的一点思考,想知道其中的一些机制.小白求助亲们解答一些,谢谢. 解决方案 iunx 下

ASP调用带有输入参数和输出参数的存储过程

存储过程 返回值其实是一种特殊的输出参数.在大多数情况下,我们用到的是同时有输入及输出参数的存储过程,比如我们想取得用户信息表中,某ID用户的用户名,这时候,有一个输入参数----用户ID,和一个输出参数----用户名.实现这一功能的存储过程如下:<br><br> <table style="WIDTH: 475px; HEIGHT: 220px" borderColor=#cccccc width=475 align=center bgColor=#e3

利用Keydown事件阻止用户输入实现代码

 这篇文章主要介绍了利用Keydown事件阻止用户输入的具体实现,需要的朋友可以参考下 先了解下各事件的区别    KeyDown:在控件有焦点的情况下按下键时发生  KeyPress:在控件有焦点的情况下按下键时发生  KeyUp: 在控件有焦点的情况下释放键时发生    1.KeyPress主要用来接收字母.数字等ANSI字符.KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键    2.KeyPress 只能捕获单个字符,KeyDo

PHP开发不能违背的安全规则 过滤用户输入_php技巧

作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙. 规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措施确保安全之前,来自任何其他来源(比如 GET 变量.表单 POST.数据库.配置文件.会话变量或 cookie)的任何数据都是不可信任的. 例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的. 复制代码 代码如

PowerShell函数中使用$PSBoundParameters获取输入参数列表实例_PowerShell

本文介绍在自定义PowerShell函数时,有一个$PSBoundParameters的变量可以获取到输入参数列表.获取输入参入列表对我们进行功能调试有很大的帮助. 当我们在执行一个函数时,可以使用输入参数的值,但我在PowerShell中,参数有的是必选,有的是可选,那么我们怎么知道用户真实的输入了哪些参数呢? 在PowerShell函数中,有一个全局变量$PSBoundParameters,它是一个Hash表,里面保存了所有的输入参数和输入参数的值.通过输出这个变量,我们就可以看到所有的输入