Linux Shell 脚本编程

目录

一、shell 脚本基础

        1.1 什么是shell

         1.2 linux中shell的作用        

         1.3 shell编程的基本流程

二、shell编程基础语法

        2.1 变量

        2.2 数据类型

        2.3 输入和输出

        2.4 判断基础

                 2.4.1 比较两个数大小的符号

                 2.4.2 比较两个字符串是否相同

                2.4.3 判断文件

        2.5 关于$?

三、流控制

        3.1 if条件判断

               3.1.1 格式

                3.1.2 组合条件判断

                3.1.3 组合条件判断的格式

        3.2  case条件判断

 ​编辑

         3.3 for循环

        3.4 while循环

        3.5 循环控制

四、位置参数

        4.1 简介

五、函数

        5.1 函数基础

                5.1.1 函数简介

                 5.1.2 函数作用

                5.1.3 定义函数

                 5.1.4 调用函数

        5.2 函数传参

         5.3 函数返回值


一、shell 脚本基础

        1.1 什么是shell

        shell本质上就是用户与计算机交互的界面/窗口。

        用户将要执行的操作通过shell传递给计算机,计算机将执行的结果通过shell返回给客户端。

        用户执行操作的方法

        Ⅰ:用户通过鼠标点击完成发送要执行的操作指令

        Ⅱ:用户直接发送命令

        shell分类

图形化shell:GUI

        例:winodws桌面

字符化shell:CLI

        例:linux的shell窗口

         1.2 linux中shell的作用        

        1)接受用户输入的命令

        2)将用户输入的命令转换成计算机能够识别的代码,这个转换过程,称之为解释

        3)将用户输入命令的执行结果显示出来

解释:简单来说就是将命令转换为01代码

解释器:可以实现将命令转换为01代码的软件,就称之为解释器

        例:bash、ksh、csh、tcsh 

         bash解释器的位置:/bin/bash

         1.3 shell编程的基本流程

        1)用vim创建一个后缀为.sh的文件

注:脚本文件的后缀,即使不是.sh也是可以正常执行的。

        2)在.sh文件中写入内容

 第一行固定写法:

#!/bin/bash           #用来指定bash解释器

第二行脚本正文内容:

        以#开头的是注释行

        3)给脚本进行赋权

chmod  +x  脚本

         4)执行脚本

./脚本


当然我们也可以跳过第三步直接执行脚本

bash  脚本文件

二、shell编程基础语法

        2.1 变量

                定义变量:变量名=变量值

:1)直接用等号进行定义;2)等号两侧不能出现空格;

                 变量名的定义规则

  • 只能是数字、字母、下划线
  • 不能以数字开头
  • 建议变量名见名知意,例:驼峰写法

                输出变量值:$变量名

        2.2 数据类型

                字符串类型、数值类型、布尔类型【真|假】

        2.3 输入和输出

输入:read  -p  "提示信息"  变量名
# 提示信息:给用户看要输入什么内容
输出:echo  "要输出的内容 $变量名"

        2.4 判断基础

[ 判断表达式 ]
# 方括号两侧要留空格,否则会报错
# 返回结果:真:0  假:1

                 2.4.1 比较两个数大小的符号

-gt  表示大于(>)

-ge 表示大于等于(>=)

-lt   表示小于(<)

-le  表示小于等于(<=)

-eq 表示等于(==)

-ne 表示不等于(!=) 

                 2.4.2 比较两个字符串是否相同

== 表示字符串相同                                != 表示字符串不同

                2.4.3 判断文件

 判断文件是否存在:

        [ -a  文件名 ]  文件存在,返回真;文件不存在,返回假

        [ -e 文件名 ]   文件存在,返回真;文件不存在,返回假

判断文件类型:

        [ -d 文件名 ] 判断文件是否为目录,如果是目录,返回真;如果不是目录,返回假

        [ -f 文件名 ]  判断文件是否为一般文件,如果是一般文件,返回真;如果不是一般文件,返回假

        2.5 关于$?

特殊的内置变量

这个变量可以表示离他最近的判断条件的结果

        如果结果为真,$?=0

        如果结果为假,$? !=0   这个变量中保存的值是非0的

三、流控制

        3.1 if条件判断

               3.1.1 格式

①:单分支

if [ 判断表达式 ];then
    代码块
fi

②:双分支

if [ 判断表达式 ];then
    代码1
else
    代码2
fi

③:多分支

if [ 判断表达式1 ];then
    代码1
elif [ 判断表达式2 ];then
    代码2
elif [ 判断表达式3 ];then
    代码3
.....
else
    代码n
fi

                3.1.2 组合条件判断

&& 多个条件同时成立为真

|| 多个条件中有一个满足就为真

!对条件取反,条件真则为假

                3.1.3 组合条件判断的格式

[ 判断表达式 ] && [ 判断表达式 ]
[ 判断表达式 ] || [ 判断表达式 ]
[ !判断表达式 ]

        3.2  case条件判断

                格式

case  变量名  in
值1)
    代码块
    ;;
值2)
    代码块
    ;;
......
......
*)
    代码块
    ;;
esac

 

         3.3 for循环

                格式

for  变量  in  列表对象
do
    要循环执行的语句块
done

                列表对象的写法

Ⅰ:直接写出列表元素,各个元素之间用空格分隔

Ⅱ:用{start...end}写一个连续的列表元素,既可以是数字,也可以是字母

Ⅲ:用seq来生成数字列表

        seq用法:

                ①seq  stop:只有一个值,这个值是最大值

                ②seq  start  stop:指定开始值和最大值

                ③seq  start  step  stop:开始值  步长  最大值

Ⅳ:用命令来生成列表

        3.4 while循环

                格式1

while  判断条件
do
    循环语句块
done

                 格式2:逐行读取文件

while  read  line
do
    循环代码块
done<文件名

        3.5 循环控制

break:只能用在循环中;一旦执行到break,会立即终止循环,循环后面的代码

continue:只能用在循环中;一旦执行到continue,会立刻终止当前本次循环,开始下一次循环

四、位置参数

        4.1 简介

位置参数,也被称之为位置变量

通过位置参数,可以在执行程序的时候,向程序传递数据

        shell接收参数的方法

         向shell传递参数的方法

五、函数

        5.1 函数基础

                5.1.1 函数简介

 函数本质上就是一个代码块,通过函数可以将一段代码定义成一个整体,然后给这个整体取名,当需要执行这段代码的时候,只需要通过这个名字就可以完成执行这段代码的过程。

                 5.1.2 函数作用

降低代码的冗余度

                5.1.3 定义函数

函数名(){
    代码块
}

                 5.1.4 调用函数

函数名

        5.2 函数传参

         5.3 函数返回值

exit:这个个作用是用于终止程序继续执行

break:终止循环

return:只能用在函数中,一旦执行到return,就会跳出函数,去执行函数后面的代码

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值