命令行选项与类型化变量全解析
1. 命令行选项处理基础
在处理命令行选项时,我们最初可能会想到类似下面这样的代码:
if [ $1 = -o ]; then
code that processes the -o option
1=$2
2=$3
fi
normal processing of $1 and $2...
但这段代码存在诸多问题。首先,像 1=$2 这样的赋值是非法的,因为位置参数是只读的。即便合法,这种代码也会对脚本能处理的参数数量加以限制,这非常不明智。而且,如果命令有多个可能的选项,处理这些选项的代码很快就会变得混乱不堪。
幸运的是,shell 提供了 shift 命令来解决这个问题。 shift 命令的作用是将参数依次左移,例如 shift 3 会使 $1 变为原来的 $4 , $2 变为原来的 $5 ,依此类推。以下是使用 shift 处理单个选项 -o 和任意数量参数的代码:
if [ $1 = -o ]; then
process the -o option
shift
fi
normal processing of arguments...
超级会员免费看
订阅专栏 解锁全文
1400

被折叠的 条评论
为什么被折叠?



