【Linux】Shell脚本编程 一 「vim、变量、if判断、case判断」

初衷:利用编写脚本简化应用者使用的复杂程度,屏蔽内部实现逻辑,提高应用效率。

目标:学习Shell脚本编程基本语法,可编写简单可应用的脚本程序

一、vi/vim 编辑器使用简介

编辑脚本程序,首先至少需要一款编辑器,Linux编辑器有很多,比如vim(vi升级版)、nano、emacs以及桌面编辑器等等,我常用vi/vim来进行文本编辑,就常用指令来梳理一下,您可根据尝试选择适合自己的编辑器。以下是在vim编辑器中写的内容 # 是注释的意思: 

 

二、开始动手创建脚本文件

1、首先使用touch命令来创建一个文件,为了阅读方便,我们起名为test1.sh 。

在脚本文件中第一行必须标注要使用的Shell ,比如常用的为 #!/bin/bash 就是使用bash shell来运行下面你的脚本内容,当然你也可以使用其他Shell来运行你的脚本内容

脚本内容:

输出结果:

说明:首先查看当前路径,因为该路径并没有配置到$PATH环境变量中,因此直接输入脚本名不能让Linux找到对应的命令,我们使用全路径调用脚本发现提示权限不足,然后通过查询发现该文件没有执行x权限,然后我们将所有者加上执行权限,再次调用输出了我们想输出的东西。将该路径加入至PATH中后,Linux在寻找中就能发现此输入对应的正确脚本文件位置。

2、在脚本中使用环境变量

在脚本中可以使用系统环境变量,也可以使用用户变量

输出结果:

3、命令替换

意思是说可以将命令的输出赋予一个变量,之后就可以在其他地方应用该输出了

输出结果:

3、使用方括号进行数学运算

这里直接使用 $[  ] 来进行计算 

输出结果:

但是需要注意的一点是,bash shell中 $[  ] 中不支持浮点数运算,因此需要使用bc应用来解决

输出结果:

引入bc后:

其中scale代表后面几位小数,这里是将var1/var2结果通过管道符|传给bc程序进行计算

输出结果:

4、关于可以在脚本中指定退出码

当成功执行命令后,可以通过$?如果是0则表示成功

如果是其他则表示不成功,比如:

shell脚本中默认执行成功就返回默认退出码了,但是我们可以自定义一个,「这里需要注意的是退出码的范围是0~255,因此如果设置超过此数字后,则会自动取取模计算后的结果」比如:

输出结果:

三、开始进入简单逻辑书写

1、「if then elif then else fi 」 简单说就是if条件判断语句,这里给定了一个最全的,我们可以通过事例来说明

输出结果:

再写一个多层判断逻辑:

首先创建一个测试目录供使用

脚本内容:

输出结果:

2、test命令

test命令会验证条件是true或者false 然后if会根据结果进行判定

脚本内容:

输出结果:

3、不写test 使用[ ] 来验证条件 【请注意方括号的前后空格】

数值比较符号表:

字符串比较表:

例:

上面事例脚本内容中,有几个需要注意到的点:

1、在进行多个字符串非空判断中使用 && 符号,该符号的意思是并且 都为真的情况下才返回ture ,另一个是 || 的意思是只要有一个为真就返回true,使用方法相同 注意前后方括号。

2、注意字符串比较时候 > 是需要使用转义符的,否则会编程重定向输入操作,并且还不会报错

输出结果:

文件比较:

事例:

输出结果:

针对输出结果可以看到 文件test10判定真确 且拥有者执行者拥有可写权限

4、使用case

case命令的目标是减少大量if-then-elif-fi的多次判断产生大量冗余。我们看下面一个例子

事例:

类似于java中switch-case语句,需要注意是 1、case条件后面的in 2、每个条件后面是) 3、每个符合条件内容结尾需要有两个;; 

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值