Shell脚本通过参数名传递参数的实现代码

 更新时间:2020年02月07日 09:29:11   作者:张志翔  
这篇文章主要介绍了Shell脚本通过参数名传递参数的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

平常在写shell脚本都是用$1,$2…这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护。Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取。下面的例子定义了短参数名和长参数名两种获取参数值的方式。其实是根据getopt提供的特性进行整理而来。

#!/bin/bash
while getopts i:o:p:s:t: OPT; do
 case ${OPT} in
  i) in_file=${OPTARG}
    ;;
  o) out_dir=${OPTARG}
    ;;
  p) product_code=${OPTARG}
    ;;
  s) software_version=${OPTARG}
    ;;
  t) type=${OPTARG}
    ;;
  \?)
    printf "[Usage] `date '+%F %T'` -i <INPUT_FILE> -o <OUTPUT_DIR> -o <P
RODUCT_CODE> -s <SOFTWARE_VERSION> -t <TYPE>\n" >&2
    exit 1
 esac
done
 
# check parameter
if [ -z "${in_file}" -o -z "${out_dir}" -o -z "${product_code}" -o -z "${software_version}" -o -z "${type}" ]; then
  printf "[ERROR] `date '+%F %T'` following parameters is empty:\n-i=${in_file}\n-o=${out_dir}\n-p=${product_code}\n-s=${software_version}\n-t=${type}\n"
  exit 1
fi
 
# block enc
java -jar openailab-command-line-auth-0.1-SNAPSHOT.jar ${in_file} ${out_dir} ${product_code} ${software_version} ${type}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • shell 使用指定的分割符来分割字符串的方法

    shell 使用指定的分割符来分割字符串的方法

    这篇文章主要介绍了shell 使用指定的分割符来分割字符串的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • linux 定时执行shell、python脚本的方法

    linux 定时执行shell、python脚本的方法

    这篇文章主要介绍了linux 定时执行shell、python脚本的方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Shell中sed编辑器的具体使用

    Shell中sed编辑器的具体使用

    sed是一种流编辑器,sed编辑器可以根据命令来处理数据流中的数据,本文就来介绍一下Shell中sed编辑器的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • shell脚本编程之for语句、if语句使用介绍

    shell脚本编程之for语句、if语句使用介绍

    这篇文章主要是介绍了shell脚本编程之for语句、if语句的使用方法,学习shell编程的朋友可以看下
    2013-09-09
  • Linux中nmcli命令使用详解

    Linux中nmcli命令使用详解

    nmcli是Linux系统中的一个命令行工具,用于管理网络连接,它可以帮助用户配置和管理网络连接、网络设备以及网络连接的属性,本文给大家详细介绍了Linux nmcli命令使用方法,需要的朋友可以参考下
    2024-03-03
  • linux lsof命令详解及实例

    linux lsof命令详解及实例

    这篇文章主要介绍了linux lsof命令详解的相关资料,lsof是一个列出当前系统打开文件的工具,这里详细介绍如何使用,需要的朋友可以参考下
    2017-03-03
  • shell获取目录下所有文件夹的名称并输出的实例

    shell获取目录下所有文件夹的名称并输出的实例

    今天小编就为大家分享一篇shell获取目录下所有文件夹的名称并输出的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • shell字符串比较判断是否为数字

    shell字符串比较判断是否为数字

    本文阐述:shell中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等
    2013-01-01
  • linux系统下dd命令的使用方法

    linux系统下dd命令的使用方法

    这篇文章主要介绍了linux系统下dd命令的使用方法,dd命令的功能是把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换
    2014-01-01
  • shell脚本编程之数组

    shell脚本编程之数组

    数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标
    2016-01-01

最新评论