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 命令行参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux shell知识点汇总

    Linux shell知识点汇总

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。
    2015-08-08
  • Linux tar 命令出现 Cowardly refusing to create an empty archive 错误解决办法

    Linux tar 命令出现 Cowardly refusing to create an empty archive

    这篇文章主要介绍了Linux tar 命令出现 Cowardly refusing to create an empty archive 错误解决办法的相关资料,需要的朋友可以参考下
    2017-04-04
  • bash脚本如何监控cup/内存/磁盘使用率

    bash脚本如何监控cup/内存/磁盘使用率

    本文主要介绍了bash脚本如何监控cup/内存/磁盘使用率,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • linux编写.sh脚本并赋权限问题

    linux编写.sh脚本并赋权限问题

    这篇文章主要介绍了linux编写.sh脚本并赋权限问题,文中给大家提到了Linux为sh脚本文件添加执行权限的方法,需要的朋友跟随脚本之家小编一起学习吧
    2018-06-06
  • bash脚本输入密码不回显问题的解决方法

    bash脚本输入密码不回显问题的解决方法

    编写一个bash脚本时,需要用户输入一个密码,方可继续后续流程,但是又要保证用户输入的密码不会被别人看到,因此排除了通过参数将密码传入脚本的方案
    2013-08-08
  • 几例shell实用脚本(珍藏版)

    几例shell实用脚本(珍藏版)

    日常工作中,经常编写一些shell命令或脚本以完成重复性操作,本文分享了最近用到的几例shell实用脚本,感兴趣的朋友跟随小编一起看看吧
    2021-04-04
  • 浅谈Shell中的函数

    浅谈Shell中的函数

    这篇文章主要介绍了Shell中函数的相关资料,帮助大家更好的理解和使用shell,感兴趣的朋友可以了解下
    2020-09-09
  • Shell脚本用for循环遍历参数的方法技巧

    Shell脚本用for循环遍历参数的方法技巧

    今天小编就为大家分享一篇关于Shell脚本用for循环遍历参数的方法技巧,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Linux/Nginx如何查看搜索引擎蜘蛛爬虫的行为

    Linux/Nginx如何查看搜索引擎蜘蛛爬虫的行为

    本文给大家介绍Linux/Nginx如何查看搜索引擎蜘蛛爬虫的行为,清楚蜘蛛的爬行情况对做SEO优化有很大的帮助。需要的朋友通过本篇文章学习下吧
    2015-10-10
  • Linux shell数组循环的实例详解

    Linux shell数组循环的实例详解

    这篇文章主要介绍了Linux shell数组循环的实例详解的相关资料,这里举例说明如何实现shell数组循环,需要的朋友可以参考下
    2017-08-08

最新评论