写 shell 脚本时,如果有多个参数,经常要指定参数名,这样有些参数可以不传,参数多时有名字也更清晰。
Source (run.sh)
#!/usr/bin/env bash
checkargs()
{
if [ $# -lt 2 ]; then
echo "parameter required."
exit 1
fi
}
branch=
parent=
while (( "$#" )); do # While there are arguments still to be shifted
case "$1" in
-b|--branch)
branch="$2"
# 参数有值的检查下参数,不然上面 shift 2 会卡住
checkargs "$@"
shift 2
;;
-p)
parent=1
shift
;;
*)
break
;;
esac
done
projects=("$@")
Usage
./run.sh -b main aa bb cc
./run.sh --branch main -p aa bb cc
./run.sh -p aa bb cc