python打造专业命令行脚本

在linux系统中运行某些系统命令时,这些命令可以通过增加不同参数实现不同功能, 例如典型的nmap命令,就可以通过组合不同参数实现扫描结果,设想下如果我们写的脚本也能支持根据选择的不同参数来实现不同的运行结果,是不是显得非常专业化,所以今天我们就来看一段代码,看如何实现带命令行参数的脚本,按惯例,我们先看代码:

脚本用到了subprocess和optparse,前者可以调用系统命令,后者就是来实现如何自定义参数来执行脚本,shell命令的部分比较简单,在此不在讲了,接下来runBash()函数是返回命令执行结果的,这里大家可以看看subprocess模块如何使用,report()函数打印命令的结果值输出,controller()函数就是核心控制我们自定义参数的函数,首先初始化类,p.add_option()方法实现一次增加一个选项,支持长格式和短格式,例如:’–ip’,’-i’,  action=”store_true”,是默认动作,表示单独存储;p.parse_args()方法来解析命令行,返回是两部分的元组,其中一个是包含值的实例,另一个是命令行参数列表,接下来就是根据用户选中的参数类型进行不同的结果输出,到此脚本结束,运行结果如下, 有木有高大上的感脚: