
一般简单的参数可通过如$0下标方式依次获取脚本名称、参数等,缺点是增减参数或更换顺序可能导致参数装配不一致,甚至是失败。 使用getopts 通过对参数名(字母)的循环解析达到解析参数的目的
#!/bin/bash
echo $*
echo
while getopts ":n:p:" opt
do
case $opt in
n)
name=$OPTARG;;
p)
passwd=$OPTARG;;
?)
echo "unkonw : $opt($OPTIND,$OPTARG)"
exit 1;;
esac
done
echo "参数化结果:name=$name,passwd=$passwd"执行效果:

OPTARG : 代表参数值(未识别时指代参数)OPTIND: 参数索引号