最近由于工作需要,需要在linux上实现一个很简单的脚本。这个脚本需要处理几个参数。在最开始的时候,我的做法是使用交互式方法,提示用户输入参数,然后进行处理,类似于:
while true
input function
swtich function:
case funcion1
function1:
break
case function2:
break
case .....
;;
case 0:
exit
;
done
在每一个function内部都是这样实现的:
function()
{
input parameter
deal with parameter
}
最近在看unix编程艺术 一书,看到getopt,感觉很好。不需要使用交互式方式来实现。突然发现在所使用的linux命令没有见过这种交互式的命令。
所以自己就修改了代码,使用getopt功能实现。
关于getopt有很多中实现,不同的语言都可以做。
man -k getopt 会给所以的相关文档
1:bash:自带的getopts
2:单独的命令getopt
3:C库中的getopt函数,已经GNU_SOURCE中的getopt_long
4:perl和python中也有这种功能的函数
非交互式的功能是linux是最好的方式。