Linux学习之路—编写简单的Shell命令脚本
可以将Shell 终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux 系
统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环、分支等高级编程
语言才有的控制结构特性。
分为两种:
交互式(Interactive):用户每输入一条命令就立即执行。 批处理(Batch):由用户事先编写好一个完整的Shell 脚本,Shell 会一次性执行脚本 中诸多的命令。
查看SHELL变量可看到系统默认使用Bash作为命令执行的解释器了
编写简单的脚本
看起来很复杂,其实使用Vim编辑器将Linux命令按照顺序依次写入到一个文件中就是一个简单的脚本了。
在根目录编辑一个例子
pwd
ls -al
这样就能实现一个简单的脚本执行了,此外,还可以在1、2行加上注释
pwd
ls -al
这样实现的效果是一致的,注释部分可以进行声明,告诉系统使用哪种shell解释器来执行,和介绍脚本的功能和命令的介绍信息。
另一种运行方式
./example.sh
首次运行可能会出现权限不够的情况,使用chmod +x example.sh 可进行权限的修改
接收用户的参数
Linux脚本语言内设了用于接收参数的变量,变量之间可以使用空格间隔。
例如
0
对
应
的
是
当
前
S
h
e
l
l
脚
本
程
序
的
名
称
,
0 对应的是当前Shell 脚本程序的名称,
0对应的是当前Shell脚本程序的名称,#对应的是总共 有几个参数,
?
对
应
的
是
所
有
位
置
的
参
数
值
,
*对应的是所有位置的参数值,
?对应的是所有位置的参数值,?对应的是显示上一次命令的执行返回值,而 $1、$2、$3…则分别对应着第N 个位置的参数值,如图4-15 所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRiFsbjQ-1631493193020)(C:\Users\86177\AppData\Roaming\Typora\typora-user-images\image-20210913080428582.png)]
参考:https://www.linuxprobe.com/docs/LinuxProbe.pdf
判断用户的参数
Shell 脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值。切记,条件表达式两边均应有一个空格。
按测试对象划分:条件测试语句可分为4种:
文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句
下面分别简单介绍一下:
文件测试语句
使用文件测试语句来判断/etc/fstab 是否为一个目录类型的文件,然后通过Shell 解释 器的内设$?变量显示上一条命令执行后的返回值。如果返回值为0,则目录存在;如果返回值 为非零的值,则意味着目录不存在:
其他的判断语句可以自己去尝试一下,同上类似
逻辑测试语句
三种逻辑语句,“与”:&& 、“或”:|| 、“非”:!
“与”:&& ,当前面的命令执行成功后才会执行它后面的命令
“或”:||,当前面的命令执行失败后才会执行它后面的命令
“非”:!,表示把条件测试中的判断结果取相反值
整数值比较语句
判断10 是否等于 10,返回 0 ,是正确的
字符串比较语句
用于判断测试字符串是否为空值,或两个字符串是否相同。它经常用来 判断某个变量是否未被定义(即内容为空值)
结合前面的内容判断
学到这里,后面再学流程控制语句
|