主要利用getopt对参数进行检查,然后循环找到各个参数。#!/bin/bash
function printUsage {
echo "Usage:"
echo "$0 <src> <dst> [-f format] [-s setting]"
}
params=`getopt f:s: "$@"`
if [ $? != 0 ] ; then
echo "Invalid arguments."
printUsage >&2
exit 1;
fi
ParaFormat="defaultFormat"
ParaSetting="defaultSetting"
eval set -- "$params"
while true; do
case "$1" in
-f) ParaFormat="$2"; shift 2;;
-s) ParaSetting="$2"; shift 2;;
--) shift;;
*) if [ -z $1 ]; then
break;
elif [ -z $ParaSrc ]; then
ParaSrc=$1;
elif [ -z $ParaDst ]; then
ParaDst=$1;
else
echo "Invalid argument: $1" >&2;
printUsage
exit 1;
fi
shift;;
esac
done
if [ -z $ParaSrc ]; then
echo "Invalid arguments." >&2;
printUsage >&2;
exit 1;
fi
echo "input : $ParaSrc"
echo "output : $ParaSrc"
echo "format : $ParaFormat"
echo "setting : $ParaSetting"