shell脚本简明教程

时间:2024-01-22 16:00:19

一、Shell应用场景


01

Shell能做什么  

    将一些复杂的命令简单化(平时我们提交一次github代码可能需要很多步骤,但是可以用Shell简化成一步)

    可以写一些脚本自动实现一个工程中自动更换最新的sdk(库)

    自动打包、编译、发布等功能

    清理磁盘中空文件夹

    总之一切有规律的活脚本都可以尝试一下

02

Shell不能做什么

       需要精密的运算的时候

    需要语言效率很高的时候    需要一些网络操作的时候    总之Shell就是可以快速开发一个脚本简化开发流程,并不可以用来替代高级语言

03

Shell的工作原理

 

     Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。    1.3.1 最简单的脚本:

shell脚本简明教程_Shell

    只需要打开文本编辑工具,编辑成以上的样子,然后保存成test.sh

    1.3.2 运行该脚本:

shell脚本简明教程_运算符_02

shell脚本简明教程_Shell_03

“效果图1”

    这样我们便写出来了第一个最简单的脚本,下面我们可以尝试着写一些复杂的脚本。

    1.3.3 Shell中的变量

shell脚本简明教程_运算符_04

    这里面需要注意的就是,“=”前后不能有空格,命名规则就和其它语言一样了。

    1.3.4 访问变量

shell脚本简明教程_子程序_05

当想要访问变量的时候,需要使用$,否则输出的将是纯文本内容,如下图所示。

shell脚本简明教程_Shell_06

“效果图2”

    Shell中的四则运算

shell脚本简明教程_Shell_07

    例子程序

shell脚本简明教程_Shell_08

这里面需要注意的就是,定义变量的时候“=”前后是不能有空格的,但是进行四则运算的时候运算符号前后一定要有空格,乘法的时候需要进行转义。

shell脚本简明教程_运算符_09

效果图3

    其它运算符 =、==、!=、!、-o、-a

shell脚本简明教程_运算符_10

    例子程序

shell脚本简明教程_子程序_11

shell脚本简明教程_运算符_12

效果图4

    关系运算符

shell脚本简明教程_运算符_13

    例子程序

shell脚本简明教程_子程序_14

shell脚本简明教程_运算符_15

shell脚本简明教程_子程序_16

效果图5

    字符串运算符

shell脚本简明教程_子程序_17

shell脚本简明教程_子程序_18

    字符串

shell脚本简明教程_Shell_19

shell脚本简明教程_Shell_20

效果图6

    数组

shell脚本简明教程_子程序_21

shell脚本简明教程_运算符_22

效果图7

    输出程序:echo

shell脚本简明教程_Shell_23

shell脚本简明教程_子程序_24

效果图8

    printf

同c语言,就不过多介绍了

    判断语句

if

if-else

if-elseIf

case

shell脚本简明教程_运算符_25

shell脚本简明教程_Shell_26

效果图9

    test命令

shell脚本简明教程_运算符_27

shell脚本简明教程_运算符_28

    for循环

shell脚本简明教程_子程序_29

shell脚本简明教程_运算符_30

效果10

    while循环

shell脚本简明教程_子程序_31

以上是while循环的两种用法,第一种是比较常规的,执行循环,然后每次都把控制的数加1,就可以让while循环有退出的条件了。

第二种是用户从键盘数据,然后把用户输入的文字输出出来。

    跳出循环

shell脚本简明教程_Shell_32

    函数

shell脚本简明教程_Shell_33

    定义一个没有返回值的函数,然后调用该函数

shell脚本简明教程_Shell_34

    定义一个有返回值的函数,调用该函数,输出结果

shell脚本简明教程_子程序_35

效果图11

shell脚本简明教程_Shell_36

定义了一个需要传递参数的函数

shell脚本简明教程_子程序_37

效果图12

    重定向

shell脚本简明教程_Shell_38

    写一个自动输入命令的脚本

    自动提交github仓库的脚本

shell脚本简明教程_Shell_39

shell脚本简明教程_子程序_40