shell 命令行参数解析

1. 手动解析参数,位置参数

(1) $#: 参数的个数

(2) $1...$9: 第一个参数...第9个参数

2. 内置命令解析,getopts,不支持长参数格式

命令格式:getopts option_string variable

第一个参数是一个字符串,包括字符和":",每一个字符都是一个有效的选项,如果字符后面带有":",表示这个字符有自己的参数。如果字符后面无":"符号表示无自己的参数

getopts从命令中获取这些参数,并且删去了"-",并将其赋值在第二个参数中,如果带有自己参数,这个参数赋值在“OPTARG”中

test.sh

#!/bin/sh

while getopts "b:v:" opt

do
case $opt in
b)
echo "b parameter value:$OPTARG"
;;
v)
echo "v parameter value: $OPTARG"
;;
esac
done

使用:

./test.sh 或者 ./test.sh -b value 或者 ./test.sh -v 0.1 或者 ./test.sh -b value -v 0.1

时间: 2024-08-28 22:21:21

shell 命令行参数解析的相关文章

第5章4节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 命令行参数解析(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 设置好Monkey的CLASSPATH环境变量以指定"/system/framework /framework/monkey.jar"后,/system/bin/monkey这个shell脚本就会通

Python 中命令行参数解析工具 docopt 安装和应用

什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制.这样脚本在执行的时候就必须按照这样格式来执行,同时,也可以很方便的编写一些帮助信息(其实很多软件在输入 -h 的时候显示信息 .例如 python -h ,会显示所有的 python 指令,并且页通过 docopt 限制了 python 指令的格式),下面是一些简单的例子: docopt 的安装 d

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

C#命令行参数解析类以及使用实例

http://blog.csdn.net/jackxinxu2100/article/details/6642694 编写命令行程序时如何进行命令行参数解析至关重要,下面将引用codeproject里面的一个命令行参数解析类并阐述如何使用来说明C#命令行参数解析的过程. 先看参数解析类,分为CommandLine类以及CommandArgs类,前者负责解析,后者负责结果封装,解析的结果分为三类:即 a=b 对应的key/value类型,-a b 对应的option与option value(可省

【Python 命令行参数解析: optparse 模块】

大家在使用Python进行脚本开发时,经常需要通过终端交互的方式对Python的脚本模块进行调用.这时在 Python模块中提供基础的命令行参数支持是必不可少的.那么,在Python中我们如何实现命令行参数的传入和解析呢,如下内容将对此进行简要的介绍. Python对命令行参数解析的支持 Python中通过两个内建模块对命令行参数解析进行支持:getopt 和 optparse 两种内置支持 模块名 功能说明 getopt 对命令行参数进行简单的处理 optparse 能够对命令行参数进行复杂的

shell 命令行参数(基本)

命令行参数 \$0 表示程序名. \$1 至 \$9则是位置参数. \$# 表示参数的个数. \$* 将所有参数当做一个整体来引用\[email protected] 把每个参数作为一个字符串返回,可以使用for循环来遍历\$? 最近一个执行的命令的退出状态.0表示执行成功\$_ 上一个命令的最后一个参数.使用快捷键 ESC+. 也是这个效果 位置参数 位置参数不止9个,更多的参数也是一样支持的.只是要使用\${10}这样的形式引用. \$1 和 \${1}的效果是一样的. 不用花括号的话,\$

shell 命令行参数(getopt和getopts)

这里还有上一篇,这部分是基础:https://blog.51cto.com/steed/2443313 getopt 命令 使用getopt命令,可以解析任何命令行选项和参数,但是用法比较复杂.getopt的命令用法如下: $ getopt --help 用法: getopt optstring parameters getopt [options] [--] optstring parameters getopt [options] -o|--options optstring [option

python 命令行参数解析 argparse简单分析

在python 2.7 后,不推荐使用 optparse, 而推荐使用 argparse. 其它的不多说,简单的分析下我遇到的问题:我是想用 argparse 来解析不定长的命令行参数 例如: import argparse import sys parser = argparse.ArgumentParser(description='test parsing arguments') parser.add_argument('pos1', nargs='*') parser.add_argum

【Python】 配置解析ConfigParser &amp; 命令行参数解析optparser

ConfigParser ConfigParser包装了配置文件的读取和写入,使得python程序可以更加轻松操作配置文件了.这里的配置文件是指.ini的那种文件,基本格式如下 [section_a] a_key1 = a_value1 a_key2 = a_value2 [section_b] b_key1 = b_value1 b_key2 = b_value2 b_key3 = b_value3 将一个文件分隔成几个section,每个section中又有很多键值对,以这样的方式构建起配置