【摘要】:例如脚本shift_options.sh的功能是,带选项-a时,显示Good afternoon;带选项-m时,显示Good morning;带选项-n时,显示Good night;带选项-w及相应的参数数值时,显示本周是今年第几周,并显示Have a nice weekend。用循环命令与shift命令配合的方式来处理选项和参数有缺点。
当一个脚本需要带选项和参数时,可以用循环命令与shift命令配合,对位置参数也就是脚本的选项和参数进行处理。
例如脚本shift_options.sh的功能是,带选项-a时,显示Good afternoon;带选项-m时,显示Good morning;带选项-n时,显示Good night;带选项-w及相应的参数数值时,显示本周是今年第几周,并显示Have a nice weekend。
当只有一个选项-a时,脚本参数个数$#=1,只有一轮while循环,显示Good afternoon:
当有两个选项-m和-n时,$#=2,有两轮while循环,显示Good morning和Good night:
当带上选项-w及参数28时,$#=2,但只有一轮while循环,显示“本周是第28周,周末愉快”:
当输入的选项是-a,-m,-n,-w之外的东西,脚本中的case命令将匹配*,脚本将显示其用法(Usage):(www.xing528.com)
当只带上选项-w,忘了其参数时,脚本显示提示:
脚本中与选项-w有关的部分,可以加强,如判断week_number必须是整数,范围须在1~52之间(因为一年只有52周)等,但这方面的内容不是本节所要讨论的重点。
用循环命令与shift命令配合的方式来处理选项和参数有缺点。一个缺点是,选项无法像Linux命令那样合并。例如,运行shift_options.sh-mn时,效果与shift_options.sh-m-n的不一致:
另外一个缺点是,当选项和参数比较多时,脚本中的shift命令就会很多,使得脚本不容易阅读和维护。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。