在提取每个单独参数时,用case语句来判断某个参数是否为选项。
$ cat test15.sh
#!/bin/bash
# extracting command line options as parameters
#
echo
while [ -n "$1" ]
do
case "$1" in
-a) echo "Found the -a option" ;;
-b) echo "Found the -b option" ;;
-c) echo "Found the -c option" ;;
*) echo "$1 is not an option" ;;
esac
shift
done
$
$ ./test15.sh -a -b -c -d
Found the -a option
Found the -b option
Found the -c option
-d is not an option
$
case语句会检查每个参数是不是有效选项。如果是的话,就运行对应case语句中的命令。不管选项按什么顺序出现在命令行上,这种方法都适用。
$ ./test15.sh -d -c -a
-d is not an option
Found the -c option
Found the -a option
$
case语句在命令行参数中找到一个选项,就处理一个选项。如果命令行上还提供了其他参数,可以在case语句的通用情况处理部分中处理。