Bash:检查'while-case'循环传递的参数

时间:2017-05-30 09:21:21

标签: bash parameters arguments

我有这个bash代码:

usages() {
    echo "$0 --user= --pass= --serverName= --dbList="
    exit 1
}
while [[ "$1" != "" ]] && [[ ."$1" = .--* ]]; do
case $1 in
    "--user="* )
        DB_USER="${1#*=}"
        shift ;;
    "--pass="* )
        DB_PASS="${1#*=}"
        shift ;;
    "--dbList="* )
        DB_NAME="${1#*=}"
        shift ;;
    "--serverName="* )
        SERVER_NAME="${1#*=}"
        shift ;;
    --help )
        usages ;;
    * )
        usages ;;
esac
done

假设脚本名称为test.sh 当我像这样运行test.sh时:

./test.sh --user=user1 --pass=pass1 --serverName=testing


脚本仍在运行。问题是我需要一个参数检查器,它应该检查4参数和参数。如果不等于4个参数,则应运行“使用”功能。 请帮助我。谢谢

0 个答案:

没有答案