Shell脚本如何传递参数

浅浅的花香味﹌ 2022-04-24 03:30 393阅读 0赞

1、$0,$1,$2 通过命令行传递参数
采用$0,$1,$2…等方式获取脚本命令行传入的参数,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数。

example:脚本例子

#

  1. ! /bin/bash
  2. echo "shell script name: $0"
  3. echo "first param:$1"
  4. echo "second param:$2"
  5. echo "..........and so on"

运行结果:
在这里插入图片描述

2、getopts传递参数

语法格式:getopts [option[:]] [DESCPRITION] VARIABLE

option:表示为某个脚本可以使用的选项

“:”:如果某个选项(option)后面出现了冒号(”:”),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)

VARIABLE:表示将某个选项保存在变量VARIABLE中

example:脚本例子:

  1. #! /bin/bash
  2. while getopts ":a:b:" opt; do
  3. case $opt in
  4. a)
  5. echo "the value of a is $OPTARG"
  6. ;;
  7. b)
  8. echo "the value of b is $OPTARG"
  9. ;;
  10. \?)
  11. echo "Invalid option: -$OPTARG"
  12. ;;
  13. esac
  14. done

运行结果:
在这里插入图片描述
注意
当optstring以”:”开头时,getopts会区分invalid option错误和miss option argument错误。

invalid option时,varname会被设成?, O P T A R G 是 出 问 题 的 o p t i o n ; m i s s o p t i o n a r g u m e n t 时 , v a r n a m e 会 被 设 成 : , OPTARG是出问题的option; miss option argument时,varname会被设成:, OPTARG是出问题的option;missoptionargument时,varname会被设成:,OPTARG是出问题的option。

如果optstring不以”:“开头,invalid option错误和miss option argument错误都会使varname被设成?,$OPTARG是出问题的option。

如下:
在这里插入图片描述
在这里插入图片描述

参考:
1、https://blog.csdn.net/xluren/article/details/17489667

发表评论

表情:
评论列表 (有 0 条评论,393人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Shell脚本参数传递

    > 在许多的情况下,Shell脚本都需要接受用户的输入,根据用户的输入参数来执行不同的操作。本节内容主要介绍Shell脚本的参数,以及如何在脚本中接收参数。 Shell脚本

    相关 Shell 传递参数

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:**$n**。**n** 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数...