一、什么是shell脚本

我们已经能够熟练的在终端中输入命令来完成一些常用的操作,但是我们都是一条一条输入命令。这样会很麻烦,那么有没有一种方式可以将很多命令放大一个文件里面,然后直接运行在这个文件即可?肯定有,这个就是shell脚本!
shell脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。
shell脚本提供数组、循环、条件判断等功能。shell脚本一般是Linux运维或者系统管理员要掌握的,作为嵌入式开发人员,只需要掌握shell脚本最基础的部分即可

二、shell脚本写法

shell脚本是个纯文本文件,命令从上而下,一行一行的开始执行。shell脚本扩展名为.sh。shell脚本第一行一定要为
#!/bin/bash

表示使用bash

三、shell脚本语法

3.1、第一个shell脚本

vi my.sh

ubuntu shell脚本启动mysql ubuntu shell脚本入门_shell脚本


给权限: chmod 777 my.sh (一开始权限不能执行)

执行: ./my.sh

3.2、交互式shell脚本(有输入输出)

read

ubuntu shell脚本启动mysql ubuntu shell脚本入门_嵌入式_02

ubuntu shell脚本启动mysql ubuntu shell脚本入门_shell脚本_03

读取多个变量值:

ubuntu shell脚本启动mysql ubuntu shell脚本入门_嵌入式_04

3.3、shell脚本的数值计算

shell仅支持整型,数值计算使用$((表达式))

(等于号= 中间不能有空格)

ubuntu shell脚本启动mysql ubuntu shell脚本入门_运维_05


ubuntu shell脚本启动mysql ubuntu shell脚本入门_shell脚本_06

3.4、test命令

test命令用于查看文件是否存在、权限等信息,可以进行数值,字符,文件三方面的测试。

&&和 || 命令:
cmd1 && cmd2 当cmd1执行完毕并且正确,那么cmd2开始执行,如果cmd1执行完毕错误,那么cmd2不执行
cmd1 || cmd2 当cmd1执行完毕并正确,那么cmd2不执行,反之cmd2执行

test参数
-e 存在即为真

演示1: 查看文件是否存在

ubuntu shell脚本启动mysql ubuntu shell脚本入门_嵌入式_07

ubuntu shell脚本启动mysql ubuntu shell脚本入门_嵌入式_08

演示2: 查看字符串是否相等

ubuntu shell脚本启动mysql ubuntu shell脚本入门_运维_09

ubuntu shell脚本启动mysql ubuntu shell脚本入门_字符串_10

3.5、中括号[ ] 判断夫

[ ] 里面只能输入 == 或 !=

(中括号两边要空开一个空格,且 两边不论是字符串还是变量都要加 “ ” )

ubuntu shell脚本启动mysql ubuntu shell脚本入门_shell_11

3.6、默认变量

$0 ~ $n :表示shell脚本的参数,包括shell脚本命令本身,shell脚本命令本身为$0
$#: #表示最后一个参数的标号
$@:表$1、$2、$3…

ubuntu shell脚本启动mysql ubuntu shell脚本入门_嵌入式_12

ubuntu shell脚本启动mysql ubuntu shell脚本入门_字符串_13