Bash 脚本 getopts为什么最后一个參数取不到

看以下的Bash脚本:

#!/bin/bash
interval=0
count=0
pid=""
while getopts "p:d:n" arg
do
        case $arg in
        p)
                pid=$OPTARG
                echo "pid: $pid"
                ;;
        d)
                interval=$OPTARG
                echo "interval:$interval"
                ;;
        n)
                count=$OPTARG
                echo "count:$count"
                ;;
        \?)
                echo "unkonw argument"
                exit 1
                ;;
        esac
done

发现最后一个參数n总是获取不到,为什么呢?

原来,n后面少了一个冒号。參数都要要带上一个冒号。包含在最末尾的參数。

正确的写法:

while getopts "p:d:n:" arg
时间: 2024-12-08 09:04:14

Bash 脚本 getopts为什么最后一个參数取不到的相关文章

Bash 脚本 getopts为什么最后一个参数取不到

看下面的Bash脚本: #!/bin/bash interval=0 count=0 pid="" while getopts "p:d:n" arg do case $arg in p) pid=$OPTARG echo "pid: $pid" ;; d) interval=$OPTARG echo "interval:$interval" ;; n) count=$OPTARG echo "count:$coun

Tokyo Tyrant(TTServer)系列(二)-启动參数和配置

启动參数介绍 ttserver命令能够启动一个数据库实例.由于数据库已经实现了Tokyo Cabinet的抽象API,所以能够在启动的时候指定数据库的配置类型. 支持的数据库类型有: 内存hash数据库 内存tree数据库 hash数据库 B+ tree数据库 命令通过以下的格式来使用,'dbname'制定数据库名,假设省略.则被视作内存hash数据库. ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid

Docker 命令行和后台參数

Docker官方为了让用户高速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的用法. Docker 命令行 以下对Docker的命令清单进行简单的介绍,具体内容在兴许章节具体介绍. 能够通过执行 docker ,或者 docker help 命令得到命令行的帮助信息(我们还是以 vmware 上的 coreos 为操作环境,如无特殊说明后文都採用这个环境): [email protected] ~ $ docker Usage: docker [OPTIONS] CO

Linux应用环境实战10:Bash脚本编程语言中的美学与哲学(转)

阅读目录 一.一切皆是字符串 二.引用和元字符 三.字符串从哪里来.到哪里去 四.再加上一点点的定义,就可以推导出整个Bash脚本语言的语法了 五.输入输出重定向 六.Bash脚本语言的美学:大道至简 总结: 我承认,我再一次地当了标题党.但是不可否认,这一定是一篇精华随笔.在这一篇中,我将探讨Bash脚本语言中的美学与哲学. 这不是一篇Bash脚本编程的教程,但是却能让人更加深入地了解Bash脚本编程,更加快速地学习Bash脚本编程. 阅读这篇随笔,不需要你有Bash编程的经验,但一定要和我一

c 语言函数可变參数的处理

/************************************************************************* > File Name: va_list.c > Author: zshh0604 > Mail: [email protected] > Created Time: 2014年10月14日 星期二 15时16分09秒 **********************************************************

kettle參数、变量具体解说

kettle參数.变量具体解说 kettle 3.2 曾经的版本号里仅仅有 variable 和 argument,kettle 3.2 中.又引入了 parameter 概念.variable 即environment variables(环境变量或全局变量).即使是不同的转换它们也拥有相同的值:而argument(位置參数)和parameter(命名參数),能够映射为局部变量,仅仅针对一个特定的转换,比方像是限定结果集的大小和过滤条件. 1.     variable(变量) variabl

bash脚本编程之十 函数

bash脚本编程之十 函数详解 ·函数(function) function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用 ·库(library) 库是由一些共享对象(so->share

python 命令行參数解析

本文是从我还有一个博客转载过来的,欢迎大家点击进去看一下,帮我添加点人气^_^ ImPyy 选择模块 依据python參考手冊的提示,optparse 已经废弃,应使用 argparse 教程 概念 argparse 模块使用 add_argument 来加入可选的命令行參数,原型例如以下: ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][

可变參数学习笔记

一.什么是可变參数 我们在C语言编程中有时会遇到一些參数个数可变的函数,比如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个參数format固定以外,后面跟的參数的个数和类型是可变的(用三个点"-"做參数占位符),实际调用时能够有下面的形式: printf("%d",i); printf("%s",s); printf("the number is %d ,s