大家好!这篇文章主要是给大家详细描述关于“shell 编译”的核心内容以及“linux系统命令及shell脚本实践指南”的相关信息 , 希望对您有所帮助 , 请往下看 。
作为一个软件测试人员, 经常会跟开发打交道 , 产品开发阶段 , 他们经常会提供一些python , shell等脚本作为bug的临时解决方案以方便测试继续进行 。 最近接触的shell脚本比较频繁 , 感觉自己的基础有些薄弱 , 就自学了下 , 顺便把获取的知识点总结下 , 希望也能对需要的人有所帮助 。
提到Shell脚本 , 必不可少的要知道Shell终端解释器 , 就像java语言 , 要有java编译器 , python语言 , 要有pycharm等文本编译器一样 , 它的作用就是人和计算机之间的翻译官 , 让彼此可以相互交流的工具 。 作为一门语言 , 必不可少的要知道这门语言的基础知识以及怎么运用这些基础知识进行业务处理 , 下边就是对这些基础的总结 。
(一) Shell脚本基础
Shell脚本常用交互式和批处理两种方式和计算机交流 。 所谓交互式是指用户向计算机输入一条指令就立马执行 , 而批量处理的方式就是把用户想要做的事情事先写好 , 然后交给计算机一起处理 。
一个完整的shell脚本分为三部分 , 如下example.sh:
#1.脚本声明
#!/bin/bash
#2.对该文本功能的的介绍
#For Example by Shell
#3.用户想实现的逻辑功能
pwd
ls -al
可以尝试用命令bashexample.sh 或./example.sh执行该脚本看下执行结果 , 有时会提示权限不够 , 记得检查该脚本的是否有执行权限和执行用户身份 。
(二) 如何接收用户参数
上边的脚本程序只能处理一些定义好的功能 , 不能对输入参数进行灵活处理 , 当然 , Shell脚本语言早也早就贴心的考虑到这些问题 , 用$表示从外部接收的变量 , 如$0对应当前shell脚本的名称 , $1、$2、$3、$4……分别对应第N个位置的参数 。
既然能够从外部接收变量 , 那么怎么判断从外部输入的变量是否符合要求呢?Linux系统中的Shell脚本语言当然也会考虑到 , 用条件表达式表示:
测试语句格式:[条件表达式]
注意 , 条件表达式两边均有一个空格 , 若条件成立 , 返回数字0 , 否则随机返回其他数值 。
【shell 编译 linux系统命令及shell脚本实践指南】例如: [ -d /etc/fstab ], 表示判断/etc/fstab是否为目录类型的文件 , 其返回值可以用 echo $? 来查看 。
(三) 流程控制语句
在真实的业务场景中 , 经常会有很复杂的业务逻辑 , 通过if , for , while , case这4种流程控制语句来实现 , 这些业务逻辑跟python , java等编程语言处理逻辑是一样的 , 只不过语法的表现形式略有不同 。
1. If 条件测试语句
If条件语句在shell脚本中的格式:
If 条件测试操作
Then 命令序列
Fi
例如:判断/media/cdrom文件是否存在 , 若存在就结束 , 若不存在 , 就去创建
#!/bin/bash
#For Example by Shell
DIR="/media/cdrom"
if [ ! -e $DIR ]
then
mkdir -p $DIR
fi
2. For循环语句
For循环语句在shell中的格式:
For 变量名in 取值列表
Do
命令序列
Done
例如:遍历所有的node配置文件configgiles , 并在每个node上执行dimension_image_3.1.4.py的python脚本 。
ConfigFiles=("image15_B4020S2.cfg" "image38_B4180S2.cfg" "image26_B4120S2.cfg" "image49_9BFNJH2.cfg")
for config in ${ConfigFiles[*]}
do
{
echo "Update PTAB location in file $ConfigHome${PreConfig}/$config"
sed -i '/payload=/'d $ConfigHome${PreConfig}/$config
- 嵌入式linux开发环境搭建 嵌入式Linux基础教程
- 怎么查看电脑隐藏文件的位置 linux 用户文件夹权限
- linux查看进程端口占用情况 linux杀掉某个端口的进程
- LINUX操作系统开发工程师招聘 Linux工程师招聘
- linux top命令的用法详细详解 linux中的top命令
- linux怎么修改时间命令 linux修改系统时间命令
- Linux是什么,现在都有哪些操作系统是基于它来开发的?
- linux挂载硬盘失败无法启动 linux磁盘挂载命令mount的作用
- Linux怎么改分辨率 win10分辨率无法更改怎么办
- linux命令的使用 linux关闭端口的命令
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
