linux shell 解析命令行参数及while getopts用法小结

 更新时间:2022年05月10日 11:09:43   作者:西京刀客  
这篇文章主要介绍了linux shell 解析命令行参数及while getopts用法,getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧

linux shell 解析命令行参数|getpots

demo:

#!/bin/bash
func() {
    echo "Usage:"
    echo "test.sh [-j S_DIR] [-m D_DIR]"
    echo "Description:"
    echo "S_DIR,the path of source."
    echo "D_DIR,the path of destination."
    exit -1
}
upload="false"
while getopts 'h:j:m:u' OPT; do
    case $OPT in
        j) S_DIR="$OPTARG";;
        m) D_DIR="$OPTARG";;
        u) upload="true";;
        h) func;;
        ?) func;;
    esac
done
echo $S_DIR
echo $D_DIR
echo $upload

输出

sh test.sh -j /data/web -m /opt/data/web
##输出结果
/data/web
/opt/data/web
false

  • optstring列出了对应的Shell脚本可以识别的所有参数,例如:需要使用-a,-f,-s参数时,optstring是afs;如果需要命令行参数后面还跟随一个值,则在相应的optstring后面加冒号,例如a:fs 表示a命令行参数后面会有一个值,是**-a value**的形式;
  • getopts执行时若匹配到a参数,会把-a参数对应的value存放在一个叫OPTARG的Shell Variable中
  • 如果optstring是以冒号开头,则表明当命令行出现了optstring中没有的参数将不会提示错误信息

getpots

getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数。

getopts optstring name [arg...]

optstring列出了对应的Shell Script可以识别的所有参数。比如:如果 Shell Script可以识别-a,-f以及-s参数,则optstring就是afs;如果对应的参数后面还跟随一个值,则在相应的optstring后面加冒号。比如,a:fs 表示a参数后面会有一个值出现,-a value的形式。

name表示的是参数的名称,每次执行getopts,会从命令行当中获取下一个参数,然后存放到name当中。如果获取到的参数不在optstring当中列出,则name的值被设置为?。

到此这篇关于linux shell 解析命令行参数及while getopts用法小结的文章就介绍到这了,更多相关linux shell 命令行参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shell脚本中[]和[[]]区别详解

    Shell脚本中[]和[[]]区别详解

    在 Shell 脚本中,[] 和 [[]] 是用于条件测试的不同语法结构,它们有一些区别,主要体现在对字符串处理和表达式的支持上,这篇文章主要介绍了Shell脚本中[]和[[]]区别,需要的朋友可以参考下
    2023-12-12
  • ubuntu sublime中文输入问题解决办法

    ubuntu sublime中文输入问题解决办法

    这篇文章主要介绍了ubuntu sublime中文输入问题解决办法的相关资料,需要的朋友可以参考下
    2017-05-05
  • 每天一个linux命令之locate 命令

    每天一个linux命令之locate 命令

    locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,这篇文章主要介绍了每天一个linux命令之locate 命令的相关资料,需要的朋友可以参考下
    2016-11-11
  • Shell脚本echo指令使用小技巧

    Shell脚本echo指令使用小技巧

    这篇文章主要介绍了Shell脚本echo指令使用小技巧,包括使用echo指令输出换行、输出不换行、输出变量等技巧,需要的朋友可以参考下
    2014-07-07
  • linux生成(加载)动态库静态库和加载示例方法

    linux生成(加载)动态库静态库和加载示例方法

    这篇文章主要介绍了linux生成(加载)动态库静态库示例方法,大家参考使用
    2013-11-11
  • 利用xargs批量删除Docker镜像的方法

    利用xargs批量删除Docker镜像的方法

    在Linux系统中,xargs命令是一个非常强大的工具,可以帮助将标准输入转换为命令行参数,并传递给其他命令,本文将重点介绍xargs参数的使用,以及如何利用xargs结合其他命令删除特定的Docker镜像,需要的朋友可以参考下
    2024-04-04
  • Shell脚本实现温和方式重启Centos系统

    Shell脚本实现温和方式重启Centos系统

    这篇文章主要介绍了Shell脚本实现温和方式重启Centos系统,本文脚本主要目的是用于重启后台比较重要的进程,需要的朋友可以参考下
    2014-12-12
  • 监控php-fpm并自动重启服务的shell脚本

    监控php-fpm并自动重启服务的shell脚本

    这篇文章主要介绍了监控php-fpm并自动重启服务的shell脚本,脚本的主要功能:不断检查网站的状态,如果异常就重启php-fpm服务,需要的朋友可以参考下
    2014-05-05
  • 用expect实现ssh自动登录服务器并进行批量管理的实现方法

    用expect实现ssh自动登录服务器并进行批量管理的实现方法

    这篇文章主要介绍用expect实现ssh自动登录服务器并进行批量管理的实现方法,需要的朋友可以参考下
    2013-02-02
  • shell自定义函数及参数调用解析

    shell自定义函数及参数调用解析

    与其它的脚本语言一样,bash同样支持函数。本文为大家介绍在bash中定义与使用函数的方法,有需要的朋友可以参考下
    2013-02-02

最新评论