Linux学习之路—编写简单的Shell命令脚本

Linux学习之路—编写简单的Shell命令脚本


可以将Shell 终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux 系
统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环、分支等高级编程
语言才有的控制结构特性。

分为两种:

交互式(Interactive):用户每输入一条命令就立即执行。
批处理(Batch):由用户事先编写好一个完整的Shell 脚本,Shell 会一次性执行脚本
中诸多的命令。

查看SHELL变量可看到系统默认使用Bash作为命令执行的解释器了

image-20210913075058187

编写简单的脚本

看起来很复杂,其实使用Vim编辑器将Linux命令按照顺序依次写入到一个文件中就是一个简单的脚本了。

在根目录编辑一个例子

pwd
ls -al

这样就能实现一个简单的脚本执行了,此外,还可以在1、2行加上注释

# !/bin/bash
# For Example BY linuxprobe.com
pwd
ls -al

这样实现的效果是一致的,注释部分可以进行声明,告诉系统使用哪种shell解释器来执行,和介绍脚本的功能和命令的介绍信息。

image-20210913075458190

另一种运行方式

./example.sh

首次运行可能会出现权限不够的情况,使用chmod +x example.sh 可进行权限的修改

image-20210913075943573

接收用户的参数

Linux脚本语言内设了用于接收参数的变量,变量之间可以使用空格间隔。

例如 0 对 应 的 是 当 前 S h e l l 脚 本 程 序 的 名 称 , 0 对应的是当前Shell 脚本程序的名称, 0Shell#对应的是总共
有几个参数, ∗ 对 应 的 是 所 有 位 置 的 参 数 值 , *对应的是所有位置的参数值, ?对应的是显示上一次命令的执行返回值,而
$1、$2、$3…则分别对应着第N 个位置的参数值,如图4-15 所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRiFsbjQ-1631493193020)(C:\Users\86177\AppData\Roaming\Typora\typora-user-images\image-20210913080428582.png)]

image-20210913080542505

参考:https://www.linuxprobe.com/docs/LinuxProbe.pdf

判断用户的参数

Shell 脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。切记,条件表达式两边均应有一个空格。

image-20210913081648916

按测试对象划分:条件测试语句可分为4种:

文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句

下面分别简单介绍一下:

文件测试语句

image-20210913081007147

使用文件测试语句来判断/etc/fstab 是否为一个目录类型的文件,然后通过Shell 解释
器的内设$?变量显示上一条命令执行后的返回值。如果返回值为0,则目录存在;如果返回值
为非零的值,则意味着目录不存在:

image-20210913081459555

其他的判断语句可以自己去尝试一下,同上类似

逻辑测试语句

三种逻辑语句,“与”:&& 、“或”:|| 、“非”:!

“与”:&& ,当前面的命令执行成功后才会执行它后面的命令

“或”:||,当前面的命令执行失败后才会执行它后面的命令

“非”:!,表示把条件测试中的判断结果取相反值

image-20210913082236085

整数值比较语句

image-20210913082322453

判断10 是否等于 10,返回 0 ,是正确的

image-20210913082424195

字符串比较语句

用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来
判断某个变量是否未被定义(即内容为空值)

image-20210913082554465

结合前面的内容判断

image-20210913082856378

学到这里,后面再学流程控制语句

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值