作为一个软件测试人员,经常会跟开发打交道,产品开发阶段,他们经常会提供一些python,shell等脚本作为bug的临时解决方案以方便测试继续进行。最近接触的shell脚本比较频繁,感觉自己的基础有些薄弱,就自学了下,顺便把获取的知识点总结下,希望也能对需要的人有所帮助。 提到Shell脚本,必不可少的要知道Shell终端解释器,就像java语言,要有java编译器,python语言,要有pycharm等文本编译器一样,它的作用就是人和计算机之间的翻译官,让彼此可以相互交流的工具。作为一门语言,必不可少的要知道这门语言的基础知识以及怎么运用这些基础知识进行业务处理,下边就是对这些基础的总结。 (一)Shell脚本基础 Shell脚本常用交互式和批处理两种方式和计算机交流。所谓交互式是指用户向计算机输入一条指令就立马执行,而批量处理的方式就是把用户想要做的事情事先写好,然后交给计算机一起处理。 一个完整的shell脚本分为三部分,如下example。sh: 1。脚本声明 !binbash 2。对该文本功能的的介绍 ForExamplebyShell 3。用户想实现的逻辑功能 pwd lsal 可以尝试用命令bashexample。sh或。example。sh执行该脚本看下执行结果,有时会提示权限不够,记得检查该脚本的是否有执行权限和执行用户身份。 (二)如何接收用户参数 上边的脚本程序只能处理一些定义好的功能,不能对输入参数进行灵活处理,当然,Shell脚本语言早也早就贴心的考虑到这些问题,用表示从外部接收的变量,如0对应当前shell脚本的名称,1、2、3、4分别对应第N个位置的参数。 既然能够从外部接收变量,那么怎么判断从外部输入的变量是否符合要求呢?Linux系统中的Shell脚本语言当然也会考虑到,用条件表达式表示: 测试语句格式:〔条件表达式〕 注意,条件表达式两边均有一个空格,若条件成立,返回数字0,否则随机返回其他数值。 例如:〔detcfstab〕,表示判断etcfstab是否为目录类型的文件,其返回值可以用echo?来查看。 (三)流程控制语句 在真实的业务场景中,经常会有很复杂的业务逻辑,通过if,for,while,case这4种流程控制语句来实现,这些业务逻辑跟python,java等编程语言处理逻辑是一样的,只不过语法的表现形式略有不同。 1。If条件测试语句 If条件语句在shell脚本中的格式: If条件测试操作 Then命令序列 Fi 例如:判断mediacdrom文件是否存在,若存在就结束,若不存在,就去创建 !binbash ForExamplebyShell DIRmediacdrom if〔!eDIR〕 then mkdirpDIR fi 2。For循环语句 For循环语句在shell中的格式: For变量名in取值列表 Do 命令序列 Done 例如:遍历所有的node配置文件configgiles,并在每个node上执行dimensionimage3。1。4。py的python脚本。 ConfigFiles(image15B4020S2。cfgimage38B4180S2。cfgimage26B4120S2。cfgimage499BFNJH2。cfg) forconfigin{ConfigFiles〔〕} do { echoUpdatePTABlocationinfileConfigHome{PreConfig}config sedipayloaddConfigHome{PreConfig}config echoPrepayloadPTABBuildConfigHome{PreConfig}config echoStarttoimagesystembyconfig python3{ConfigHome}dimensionimage3。1。4。pyCConfigHome{PreConfig}configDL{ConfigHome}logsT4500 } done 3。While条件循环语句 while循环语句在shell中的格式: while条件测试操作 do 命令序列 Done 例如:针对构建环境的操作,如果成功,则直接结束,否则再次retry,最多retry3次。 looptimes0 retrytimes3 while〔looptimesltretrytimes〕 do echoeStarttosetupcluster setupcluster echoeStarttowaitforclustercomplete returncodeecho? if〔returncodeeq1〕;then letlooptimes; echoeFailtosetupcluster,looptime:looptimes else echoeSuccesstosetupcluster break; fi done 4。Case条件测试语句 Case条件测试语句在shell中的格式: Case变量值in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; 。。 Esac 例如: !binbash ForExamplebyShell Readp请输入一个字符,并按Enter键确认:KEY CaseKEYin 〔az〕〔AZ〕) Echo您输入的是字母 ;; 〔09〕) Echo您输入的是数字 ;; Esac 以上就是总结的shell脚本语言基础以及4种逻辑处理语句的表达方式,更详细的可以参考《Linux就该这么学》这本书的第4章,比如,条件测试语句的4种方式:文件、逻辑、整数值、字符串比较测试语句在书中会有更详细的介绍,这里只是粗略的列出大纲,方便回忆知识点。有这方面需要的朋友,这本书真心推荐给你。