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传参并将参数传递给sql文件的方法
如下所示: 调用代码: sh /tmp/t.sh 20160808 echo $1 cat /tmp/t.sql | sed '$s/ssssss/'$1'/g' | mysql -t -u loader -ploader.1 -h 10.18.141.53 dxsvr echo "mysql done" 以上这篇shell传参并将参数传递给sql文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Shell脚本传递参数的3种方法比较
#!/bin/bash #extracting command text_text_text_line options as parameters help_info(){ echo "NAME" echo "\t$0" echo "SYNOPSIS" echo "\t$0 is a shell test about process options" echo "DESCRIPTION" echo &quo
-
Shell脚本通过参数名传递参数的实现代码
平常在写shell脚本都是用$1,$2-这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护.Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取.下面的例子定义了短参数名和长参数名两种获取参数值的方式.其实是根据getopt提供的特性进行整理而来. #!/bin/bash while getopts i:o:p:s:t: OPT; do case ${OPT} i
-
使用shell脚本对Nginx日志进行切分的示例代码
本文介绍了使用shell脚本对Nginx日志进行切分的示例代码,分享给大家,具体如下: 1.日志格式 默认的日志格式: main log_format main '$remote_addr - $remote_user [$time_local] "$request" ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_f
-
Shell脚本函数定义和函数参数
一.Shell函数 本教程目前为止所有脚本都是从头到尾执行.这样做很好,但你也许已经注意到有些脚本段间互相重复. shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数. shell中函数的定义格式如下: 复制代码 代码如下: 函数名(){ command1 command2 ... commandN [ return value ] } 如果愿意,可在函数名前加上关键字function,这取决于使用者. 复制代码 代码如下: funct
-
python下函数参数的传递(参数带星号的说明)
函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要有四种方式: 1.F(arg1,arg2,...) 这 是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的 值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参.例 如
-
shell脚本 自动创建用户详解及实例代码
shell脚本 自动创建用户详解 需求:判断用户zhangsan是否存在,不存在就创建并设置密码为123456 1.vi createuser.sh 2.写入: USER_COUNT=`cat /etc/passwd | grep '^zhangsan:' -c` USER_NAME='zhangsan' if [ $USER_COUNT -ne 1 ] then useradd $USER_NAME echo "123456" | passwd $USER_NAME --stdin
-
Shell脚本中判断输入变量或者参数是否为空的方法
1.判断变量 复制代码 代码如下: read -p "input a word :" word if [ ! -n "$word" ] ;then echo "you have not input a word!" else echo "the word you input is $word" fi 2.判断输入参数 复制代码 代码如下: #!/bin/bash if [ ! -n "$1"
-
Shell脚本用for循环遍历参数的方法技巧
1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历 示例: #!/bin/bash number=65 #定义一个退出值 index=1 #定义一个计数器 if [ -z "$1" ];then #对用户输入的参数做判断,如果未输入参数则返回脚本的用法并退出,退出值65 echo "Usage:$0 + canshu" exit $number fi echo "listing args with \$*:" #在屏幕输入,在$*
-
shell脚本运行5秒后自动退出的代码
复制代码 代码如下: #!/bin/bash#name show_status.sh#echo $$ > /var/run/show_status.log#sleep 5 && kill `cat /var/run/show_status.log` &#start codeecho "hello world"#end code
-
Shell脚本实现检测文件是否被修改过代码分享
#!/bin/bash funmd5_1() { find /root/passwd -type f | xargs md5sum > /tmp/funmd5_1.log } funmd5_2() { find /root/passwd -type f | xargs md5sum > /tmp/funmd5_2.log } if [ ! -f /tmp/funmd5_1.log ];then funmd5_1 fi funmd5_2 diff /tmp/funmd5_1.log /tmp/f
-
shell脚本实现拷贝大文件显示百分比的代码分享
复制代码 代码如下: #!/bin/sh strace -q -eread cp -- "${1}" "${2}" 2>&1 \ | awk '{ count += $NF if (count % 10 == 0) { percent = count / total_size * 100 for (i=0;i<=percent;i++) printf("="
随机推荐
- 举例讲解iOS应用开发中hitTest触摸事件的编写方法
- 史上最简单的MySQL数据备份与还原教程(上)(三十五)
- Mysql存储过程循环内嵌套使用游标示例代码
- MongoDB整库备份与还原以及单个collection备份、恢复方法
- AngularJS入门知识之MVW类框架的编程思想探讨
- javascript框架设计读书笔记之数组的扩展与修复
- JavaScript中定义类的方式详解
- 正则表达式之零宽断言实例详解【基于PHP】
- Laravel搭建后台登录系统步骤详解
- php中Array2xml类实现数组转化成XML实例
- 详解Android WebView加载html片段
- Nodejs极简入门教程(一):模块机制
- JS实现AES加密并与PHP互通的方法分析
- 在Unity中捕捉Android的常用按钮返回事件
- Java语法基础之运算符学习笔记分享
- Android开发实现的内存管理工具类
- python 2.7.14安装图文教程
- 详解vue+webpack+express中间件接口使用
- 易语言编写截屏程序制作教学
- 易语言将画板上指定矩形区域的颜色翻转过来的方法