《Advanced Bash-scripting Guide》学习(二):测试脚本调用的参数是否正确
2017-06-21 11:13
260 查看
本文所选的例子来自于《Advanced Bash-scripting Gudie》一书,译者 杨春敏 黄毅
#!/bin/bash
E_WRONG_ARGS=85
script_parameters="-a -h -m -z" #-a=all, -h=help等等
if [ $# -ne $Number_of_expected_args ]
then
echo "Usage: `basename $0` $script_parameters" #`basename $0`是这个脚本的文件名
exit $E_WRONG_ARGS
fi
1.$Number_of_expected_args:是这个脚本的期望参数的个数
2.$#是入参的数量(传入的位置参数变量的数量)
3.[ $# -ne $Number_of_expected_args ],-ne 不等于,比较入参数量和期望参数的个数,这句是做一个入参的检查
4.But,在此脚本中,并没有指定期望参数的个数,即$Number_of_expected_args,还有一个问题,这个脚本并没有检查传入参数的值是不是正确,有必要改写一下脚本,以达到预期的结果。
目的:
传入4个指定的参数:-a -h -m -z
改进后的脚本:
#!/bin/bash
E_SUCCESS=0
E_WRONG_ARGS=85
Number_of_expected_args=4
script_parameters="-a -h -m -z"
if [ $# -eq $Number_of_expected_args ]
then
if [ "$1" == "-a" -a "$2" == "-h" -a "$3" == "-m" -a "$4" == "-z" ]
then
echo "`basename $0` parameter is ok."
exit $E_SUCCESS
fi
fi
echo "Usage: `basename $0` $script_parameters"
exit $E_WRONG_ARGS
脚本执行结果
#!/bin/bash
E_WRONG_ARGS=85
script_parameters="-a -h -m -z" #-a=all, -h=help等等
if [ $# -ne $Number_of_expected_args ]
then
echo "Usage: `basename $0` $script_parameters" #`basename $0`是这个脚本的文件名
exit $E_WRONG_ARGS
fi
1.$Number_of_expected_args:是这个脚本的期望参数的个数
2.$#是入参的数量(传入的位置参数变量的数量)
3.[ $# -ne $Number_of_expected_args ],-ne 不等于,比较入参数量和期望参数的个数,这句是做一个入参的检查
4.But,在此脚本中,并没有指定期望参数的个数,即$Number_of_expected_args,还有一个问题,这个脚本并没有检查传入参数的值是不是正确,有必要改写一下脚本,以达到预期的结果。
目的:
传入4个指定的参数:-a -h -m -z
改进后的脚本:
#!/bin/bash
E_SUCCESS=0
E_WRONG_ARGS=85
Number_of_expected_args=4
script_parameters="-a -h -m -z"
if [ $# -eq $Number_of_expected_args ]
then
if [ "$1" == "-a" -a "$2" == "-h" -a "$3" == "-m" -a "$4" == "-z" ]
then
echo "`basename $0` parameter is ok."
exit $E_SUCCESS
fi
fi
echo "Usage: `basename $0` $script_parameters"
exit $E_WRONG_ARGS
脚本执行结果
相关文章推荐
- 测试脚本被调用的参数数量是否正确
- Perl脚本学习经验(一)------如何判断执行脚本时的输入参数是否正确
- lua学习笔记 3 android调用Lua。Lua脚本使用LoadLib回调Java,并传多个参数
- 《Advanced Bash-scripting Guide》学习(四):一个显示时间日期登录用户的脚本
- 一个脚本,可以根据参数文件名,以正确的参数调用tar来解压缩tar.gz或tar.bz2文件
- lua学习笔记 3 android调用Lua。Lua脚本使用LoadLib回调Java,并传多个参数
- 《Advanced Bash-scripting Guide》学习(三):自删除脚本和自读取内容的脚本
- 写一个脚本checkipadd.sh,判断所输入的参数是否为正确的IP地址,如 果是就输出"This is ip address";如果不是就输出"This is not ip address" (1
- 《Advanced Bash-scripting Guide》学习(一):对一个增强和广义的删除logfile的脚本的理解
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。
- 《Advanced Bash-scripting Guide》学习(五):检查一个可执行文件是否存在
- 测试Web应用程序是否存在跨站点脚本漏洞
- C调用lua脚本的效率测试
- 测试 Web 应用程序是否存在跨站点脚本漏洞
- SilverLight学习笔记--Silverligh之在Javascript中调用.NET(包括简单参数和复杂参数的操作)
- C程序中main函数参数调用[个人学习简记]
- C调用lua脚本的效率测试
- 从零学习freemarker(2)给模板传递参数的测试
- Python for .net脚本调用dotnet框架(ref和out参数问题)
- JavaScript学习与示例1------调用脚本、注释,声明变量,消息框(alert,confirm,prompt)