一文让你上手shell

news2024/9/27 23:30:03

简介

shell是C 语言编写的程序,是向操作访问Linux内核的桥梁。shell也是测试人员需要简单必备的一项小技能,至少能看懂并简单编写脚本,可以让与Linux相关的操作提升1个level。

扩展名:.sh

运行操作系统:Linux

运行环境:

BourneShell(/usr/bin/sh或/bin/sh)BourneAgain Shell(/bin/bash)

2、文件声明

# #!声明执行脚本文件的 Shell 程序#!/bin/bash#!/bin/sh

03、脚本运行

(1)cd进入脚本所在的路径,执行以下脚本

./test.sh

如果脚本没有执行权限,添加执行权限

chmod +x ./test.sh

备注:./表示在当前目录下查找文件

(2)解释器直接运行

/bin/sh test.sh

04、脚本语法

01

注释

01、单行注释

# 注释的内容

02、多行注释

:<<EOF注释的内容EOF

备注:这里的EOF也可以使用其他符号,只要前后成对出现就可以了

# 这是单行注释的内容:<<EOF这是多行注释内容EOF:<<!这是感叹号多行注释内容!

02

单双反引号

单引号:'',字符原样输出,不能输出变量

双引号:"",可以输出变量

反引号:``,反引号内的字符串当做命令执行

#!/bin/basha='单引号'b="双引号"echo$aecho$becho'输出变量$a'echo"输出变量$b"# 输出单引号双引号输出变量$a输出变量双引号

反引号:

# 反引号c=`date`echo$c# 输出Wed22 Feb 2023 03:50:05 AM UTC

03

echo打印

说明:打印输出

语法:echo "输出内容"

#!/bin/bash# 输出字符串echo"Hello World !"# 输出变量a=123echo$a

04

设置变量

语法:变量名 = 值

备注:等号左右不能有空格

a="Hello"

引用变量

语法:$a

echo$a

05

参数传递

参数可以从执行脚本时传入。

语法:$n,n从1开始,表示接收第一个参数的值

如执行脚本./test.sh 1 2,脚本中使用$1表示1,$2表示2

创建test.sh文件,编写以下脚本内容:

#!/bin/bashecho$1echo$2# 查看传递的参数个数用$#表示echo"传递$#个参数"# 查看所有传递参数的值echo $*

执行test.sh的脚本,参数使用空格分隔开

./test.sh1 2# 输出12传递2个参数12

06

expr计算

说明:表达式计算工具

语法:expr 计算公式

#!/bin/basha=1b=2echo `expr $a + $b`# 输出3

07

控制流程

01、if...else

语法:

# ifif 条件then  语句fi# if-elseif 条件then  语句else  语句fi# if-elif...if 条件then  语句elif 条件then  语句else  语句fi

例:

#!/bin/basha=5if (($a<5))then  echo"小于5"elif (($a>5))then  echo"大于5"else  echo"等于5"fi# 输出等于5

02、while

while:符合条件,循环执行,直到不符合条件结束

语法:

while 条件do  语句done

举例:

#!/bin/basha=3while (($a<5))do  let"a++"  echo"a小于5加1"done# 输出a小于5加1a小于5加1

03、until

until:循环执行,直到条件为真

语法:

until 条件do  语句done

举例:

#!/bin/basha=3until (($a>5))do  let"a++"  echo"a小于5加1"done# 输出a小于5加1a小于5加1a小于5加1

08

exit退出

exit:退出shell程序,默认值为0,1则为非正常退出

举例:

# 如果满足条件,则正常退出,否则非正常退出#!/bin/basha=2if (($a==2))then  echo"正常退出"  exit 0else  echo"异常退出"  exit 1fi# 输出正常退出

09

for循环

语法:

forvarindo  语句done

举例:

#!/bin/bashfor i in Hello Worlddo  echo$idone# 输出HelloWorld

10

函数

语法:

# 定义func(){  函数内容}# 调用func

举例:

#!/bin/bash# 定义函数a(){  echo"这是函数内部"}# 调用函数a# 输出这是函数内部
今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我们的测试交流群大家一起讨论交流学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/375920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cesium从入门到进阶(一):坐标系与坐标系转换

目录 一、坐标系 1、屏幕坐标系(像素) 1.1 二维笛卡尔平面坐标Cartesian2 1.2 三维笛卡尔空间坐标(世界坐标)Cartesian3 2、地理坐标系 2.1 地理坐标系&#xff08;弧度&#xff09;Cartographic 2.2 地理坐标系&#xff08;经纬度&#xff09;WGS84 二、坐标系转换 1…

华为不丢失数据解手机屏幕锁华为售后能保资料解锁吗华为锁屏保留数据荣耀手机解锁保数据华为手机保存数据解锁

大家好&#xff0c;今天给大家分享的华为mate9手机忘记密码保资料不清除数据解锁华为手机案例分享&#xff1a;这个用户是从马来西亚邮递回国的华为p30手机进行保资料不清除数据解除华为锁屏密码&#xff0c;由于机主突然的去世&#xff0c;手机里有公司贵重的资料&#xff0c;…

27 openEuler管理网络-通过ifcfg文件配置网络

文章目录27 openEuler管理网络-通过ifcfg文件配置网络27.1 配置静态网络27.2 配置动态网络27.3 配置默认网关27 openEuler管理网络-通过ifcfg文件配置网络 说明&#xff1a; 通过ifcfg文件配置的网络配置不会立即生效&#xff0c;需要在root权限下执行systemctl reload Network…

因为需求理解不到位,视频自动播放列表又重写了

一、一定要理解需求再下手 刚接手一个旧项目&#xff0c;只需要在上面添加一些新功能&#xff0c;和后端对对接口就可以了。因为害怕总是去问别人需求惹人烦&#xff0c;所以好几次讨论给我讲需求我就说我懂了&#xff0c;然后下来自己思考怎么做。最后又因为好多需求理解不到…

【机器学习】机器学习实验一:线性回归(详细代码展示)

文章目录一、前言二、梯度下降理解算法2.1 单变量线性回归2.2 多变量线性回归2.3 正则化2.3.1 L2正则化&#xff08;Ridge回归&#xff09;2.3.2 L1正则化&#xff08;Lasso回归&#xff09;三、实验一详细代码案例一、前言 本次实验我将分为两个部分进行讲解&#xff0c;第一…

Echarts 模拟汽车速度和油量的仪表显示,两个仪表盘同图

第025个点击查看专栏目录本示例的目标是模拟汽车速度和油量的仪表显示&#xff0c;这里两个仪表盘同图&#xff0c;并倾斜一定的角度。 文章目录示例效果示例源代码&#xff08;共115行&#xff09;相关资料参考专栏介绍示例效果 示例源代码&#xff08;共115行&#xff09; /*…

ABAP中Literals的用法(untyped literal vs. typed literal)

1. 什么是Literals ? Literals的字面意思即“文字”。其实&#xff0c;Literals就是在ABAP代码中直接指定的一个字符串&#xff0c;但注意哦&#xff0c;这个字符串并不意味着其类型一定是string哦。 要弄清这个概念&#xff0c;就要清楚ABAP对于Literals 的定义和处理方式。…

Win10+vs2019配置与运行RenderMatch+用contextcapture进行重建

Win10vs2019配置与运行RenderMatch用contextcapture进行重建 继上一篇博客&#xff0c;ground image 和aerial image影像匹配结果将会被保存为match.bin二进制文件里 再次运行时&#xff0c;只需要把这个bin文件load进来就可以了&#xff0c;不需要再次进行匹配&#xff0c;修…

推荐五款在手机上写代码的APP(附下载地址)

&#x1f31f;1.C4droid一款Android设备上的C/C程序IDE&#x1f31f;2.AIDE一个直接在 Android 设备上开发 Android 应用的集成开发环境基于原版深度定制、适配本土化的操作习惯&#xff0c;一键快速添加常用的代码&#xff0c;大幅提高开发效率。实时的语言翻译&#xff0c;帮…

CUDA的卸载

大家好,下面将进行CUDA的卸载,卸载情况描述如下: > 安装在电脑Windows10系统 (1)安装在电脑Windows10系统,打开控制面板-程序-程序和功能,可以看到自己已经安装过的CUDA,如下所示: (2)依次选中需要卸载的CUDA包,鼠标右键点击卸载即可,一般需要保留3个已经安装…

idea集成Alibaba Cloud Toolkit插件

idea集成Alibaba Cloud Toolkit插件 ​ 使用该插件主要是简化打包、上传、启动服务的相关操作。 ​ 很早之前的方式是使用开发工具&#xff08;eclipse,idea&#xff09;&#xff0c;使用maven命令完成项目打包&#xff08;这里指jar&#xff09;&#xff0c;然后通过shell工…

SSL证书的五大优势

SSL 重要吗&#xff1f;我需要 SSL 吗&#xff1f;开车时需要系好安全带吗&#xff1f;看日食时需要戴防护眼镜吗&#xff1f;就前三个问题而言&#xff0c;答案是一个很大的“是”&#xff01;如果您在 2021 年拥有网站或博客&#xff0c;则需要 SSL。就这么简单。SSL 证书不再…

BigBird:大鸟模型中文生成式长文本摘要实践

1、介绍 BigBird 是一种基于稀疏注意力的Transformer&#xff0c;可将基于Transformer的模型&#xff08;例如 BERT&#xff09;扩展到更长的序列。 论文&#xff1a;https://arxiv.org/abs/2007.14062 代码&#xff1a;https://github.com/google-research/bigbird BigBir…

Day902.Memory存储引擎 -MySQL实战

Memory存储引擎 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于Memory存储引擎的内容。 两个 group by 语句都用了 order by null&#xff0c;为什么使用内存临时表得到的语句结果里&#xff0c;0 这个值在最后一行&#xff1b; 而使用磁盘临时表得到的结果里&…

ARM的工作模式和37个寄存器

一、ARM的工作模式 ARM一共有7种工作模式 模式含义User非特权模式&#xff0c;大部分任务执行在这种模式FIQ当一个高优先级&#xff08;fast) 中断产生时将会进入这种模式IRQ当一个低优先级&#xff08;normal) 中断产生时将会进入这种模式Supervisor当复位或软中断指令执行时…

巨头混战,抢着“兜底”自动驾驶安全

诚然&#xff0c;中国汽车行业的发展绝对不会拘泥于电动化&#xff0c;必定会在电动化的基础上&#xff0c;迎接下半场的快速智能化。 2021年6月&#xff0c;长城汽车线控底盘全球首次发布。 彼时&#xff0c;长城汽车技术副总裁宋东先宣布&#xff0c;整合了线控转向、线控制…

基于海鸥算法改进的DELM分类-附代码

海鸥算法改进的深度极限学习机DELM的分类 文章目录海鸥算法改进的深度极限学习机DELM的分类1.ELM原理2.深度极限学习机&#xff08;DELM&#xff09;原理3.海鸥算法4.海鸥算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考&#xff1a;https://blog.c…

【数据结构与算法】单链表的增删查改(附源码)

这么可爱的猫猫不值得点个赞吗&#x1f63d;&#x1f63b; 目录 一.链表的概念和结构 二.单链表的逻辑结构和物理结构 1.逻辑结构 2.物理结构 三.结构体的定义 四.增加 1.尾插 SListpushback 2.头插 SListpushfront 五.删除 1.尾删 SListpopback 2.头删 SListpo…

浅谈音视频开发,如何更好的去学习?

Android音视频跟普通的应用层开发相比&#xff0c;的确更花费精力。期间为了学习音视频的录制&#xff0c;编码&#xff0c;处理也看过大大小小的几十个项目。总体感觉就是知识比较零散&#xff0c;对刚入门的朋友比较不友好。所以才萌生了整理一个Android音视频学习路线的想法…

Qss自定义属性

QSS自定义属性 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;QSS样式学习 &#x1f448;文章目录QSS自定义属性[toc]前言一、实现效果二、使用方式1.QSS设置Q_PROPERTY属性样式2.QSS设置动态属性样式3.qproperty-<属性名称>语法14.qproperty-&…