Shell脚本读取命令⾏参数
1. getopts
getopts是linux系统中的⼀个内置变量,⼀般⽤在循环中。每当执⾏循环时,getopts都会检查下⼀个命令选项,如果这些选项出现在option中,则表⽰是合法选项,否则不是合法选项。并将这些合法选项保存在VARIABLE这个变量中。
1.1. 使⽤⽅法
getopts [option[:]] [DESCPRITION] VARIABLE
option:表⽰为某个脚本可以使⽤的选项
":" 冒号如果某个选项(option)后⾯出现了冒号(":"),则表⽰这个选项后⾯可以接参数(即⼀段描述信息DESCPRITION)
getopts还包含两个内置变量,及OPTARG和OPTIND
OPTARG 就是将选项后⾯的参数(或者描述信息DESCPRITION)保存在此变量当中。
OPTIND 这个表⽰命令⾏的下⼀个选项或参数的索引(⽂件名不算选项或参数)
while getopts ":a:bc:" opt
第⼀个冒号表⽰忽略错误;字符后⾯的冒号表⽰该选项必须有⾃⼰的参数。
$OPTARG 存储相应选项的参数,如下例中的11、5;
$OPTIND 总是存储原始$*中下⼀个要处理的选项(不是参数,⽽是选项,此处指的是a,b,c这三个选项,⽽不是那些数字,当然数字也是会占有位置的)位置。
1.2. 使⽤⽰例
#!/bin/bash
echo $*
while getopts ":a:bc:" opt
do
case $opt in
a)
echo $OPTARG $OPTIND;;
b)
echo "b $OPTIND";;
c)
echo "c $OPTIND";;
)
echo "error"
exit 1;;
esac
done
2. getopt
#/bin/bash
>>>>>>>
# Extract command line options & values with getopt
#
set -- $(getopt -q ab:cd "$@")
#
echo
while [ -n "$1" ]
do
case "$1" in
-
a) echo "Found the -a option" ;;
-b) param="$2"
echo "Found the -b option, with parameter value $param" shift ;;
-c) echo "Found the -c option" ;;
--) shift
break ;;
*) echo "$1 is not option";;
esac
shift
done
#
count=1
for param in "$@"
linux循环执行命令脚本do
echo "Parameter #$count: $param"
count=$[ $count + 1 ]
done
#
参考⽂献
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
linux中链接脚本ld文件详解
下一篇 »
发表评论