getopts optstring varname [arg ...]
optstring option字符串,会逐个匹配
varname 每次匹配成功的选项
arg 参数列表,没写时它会取命令行参数列表
$OPTIND 特殊变量,option index,会逐个递增
$OPTARG 特殊变量,option argument,不同情况下有不同的值
细则1:当optstring以”:“开头时,getopts会区分invalid option错误和miss option argument错误。
invalid option时,varname会被设成?,$OPTARG是出问题的option;
miss option argument时,varname会被设成:,$OPTARG是出问题的option。
如果optstring不以”:“开头,invalid option错误和miss option argument错误都会使
varname被设成?,$OPTARG是出问题的option。
细则2:当optstring中的字母跟”:“时,表明该option可接参数,参数(argument)放在$OPTARG中;
如果缺参数,且optstring是以”:“开头,则varname的值会是:,$OPTARG是该option,
否则varname的值是?,$OPTARG是该option。(参照细则1)
简单的sample:
#!/bin/bash
SKIPBLANKS =
TMPDIR =/tmp
CASE =lower
while getopts :bt:u arg do case $arg in b) SKIPBLANKS =TRUE echo "If skip blanks? $SKIPBLANKS" ;;
t) if [ -d "$OPTARG" ] then TMPDIR =$OPTARG echo "Temp dir is $TMPDIR." else echo "$0: $OPTARG is not a directory." >&2 exit 1 fi ;;
u) CASE =upper echo "Case sensitivity is $CASE." ;;
:) echo "$0: Must supply an argument to -$OPTARG." >&2 exit 1 ;;
\?) echo "Invalid option -$OPTARG ignored." >&2 ;; esac done
|
分享到:
相关推荐
下面将详细介绍`getopts`的使用方法及其在脚本中的应用。 `getopts`的基本语法是: ```bash getopts optstring varname ``` - `optstring` 是一系列可能的选项,每个选项前通常加一个破折号(-)。如果某个选项需要...
在Bash中编写TUI(Text User Interface,文本用户界面)是一种创建命令行友好界面的方法,它可以增强交互性,提供类似图形用户界面的功能,但无需依赖图形环境。Bash是Unix/Linux系统中最常用的Shell,其内置功能...
使用getopts命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个exec自身的脚本 11-24. 在继续处理之前,等待一个进程的结束 ...
使用getopts 命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source 自身的脚本 11-22. exec 的效果 11-23. 一个exec 自身的脚本 11-24. 在继续处理之前,等待一个进程的...
这份"高级Bash脚本编程指南"旨在提供详尽的教程和实例,帮助用户快速掌握Bash脚本的高级用法。 ### 一、Bash基础 在开始高级话题之前,我们需要回顾一下Bash的基础知识。这包括变量声明、条件语句(if...else)、...
在这种方法中,Bash 自动将命令行参数分配给特殊的变量。`$0` 存储脚本名,`$1` 到 `$n` 分别存储从第一个到第 n 个参数,`$#` 保存参数总数,`$@` 和 `$*` 分别表示所有参数的数组和拼接后的字符串。例如,`for ...
Bash脚本是Linux和Unix操作系统中广泛使用的命令行解释器,是一种高级的、可编程的Shell。它为用户和系统管理员提供了一个强大的工具,用于自动化常规任务,处理文件和目录,以及执行各种复杂的系统管理任务。 首先...
Linux开发中的命令行工具是开发者日常工作中不可或缺的一部分,而`getopts`就是一个在Shell脚本中广泛使用的命令行选项解析器。在这个特定的案例中,我们关注的是`fish` shell中的`getopts`实现,它提供了处理命令行...
标题中的“5shell内置变量1”指的是Bash shell中的一类特殊的变量,这些变量由shell自动创建和管理,用于各种目的,例如环境设置、命令执行和用户交互。描述中提到了几个具体的内置变量,如`$_`、`OPTARG`、`OPTIND`...
在Shell脚本中,命令行选项和参数的使用是至关重要的,它们能够定制命令的行为。这篇文章将详细解析Linux Shell中处理命令行选项与参数的三种方法。 首先,我们可以直接处理位置参数。在Shell中,命令行参数通过...
本文将详细讲解`getopt`函数在C语言中的使用,同时也会提及bash脚本、Python和Go语言中的类似方法。 在C语言中,`getopt`函数位于`unistd.h`头文件中,其基本语法如下: ```c int getopt(int argc, char *const ...
在提供的代码示例中,可以看到`getopts`的用法: ```bash #!/bin/bash while getopts a:bc opt do case $opt in a) echo "aaa" echo $OPTARG b) echo "bb" c) echo "ccc" *) echo "error" esac done ``` 这...
在编写Linux Shell脚本时,通常使用$1, $2等变量来接收命令行传递的参数,这种方法简单但不直观,容易导致混淆。为了解决这个问题,我们可以利用`getopts`命令来实现通过参数名传递参数,使得脚本更加易读、易维护。...
掌握 `getopts` 的用法,可以使你的Shell脚本具有更好的可读性和维护性。它允许你定义复杂且灵活的命令行接口,就像许多专业命令行工具那样。通过熟练运用这一技巧,你可以创建出功能强大、易于使用的脚本来满足日常...
学习Shell编程,最好的方法是动手实践,例如编写自动备份脚本、日志分析脚本等,将理论知识应用到实际问题解决中。 通过这个资料包,你将能够深入学习和理解Linux Shell编程的核心概念,从而提升你在系统管理和...
为了防止误删,实现回收站功能的方法是使用 Bash 脚本创建 delete 脚本、logTrashDir 脚本和 restoreTrash 脚本,来模拟 Windows 的回收站功能。 Delete 脚本是核心脚本,重新封装了 rm 命令的功能。当用户执行 ...