Shell脚本如何传递参数
1、$0,$1,$2 通过命令行传递参数
采用$0,$1,$2…等方式获取脚本命令行传入的参数,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数。
example:脚本例子
#
! /bin/bash
echo "shell script name: $0"
echo "first param:$1"
echo "second param:$2"
echo "..........and so on"
运行结果:
2、getopts传递参数
语法格式:getopts [option[:]] [DESCPRITION] VARIABLE
option:表示为某个脚本可以使用的选项
“:”:如果某个选项(option)后面出现了冒号(”:”),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)
VARIABLE:表示将某个选项保存在变量VARIABLE中
example:脚本例子:
#! /bin/bash
while getopts ":a:b:" opt; do
case $opt in
a)
echo "the value of a is $OPTARG"
;;
b)
echo "the value of b is $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
esac
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
还没有评论,来说两句吧...