linux循环处理脚本命令,后端开发必须掌握的Linux命令[Shell脚本篇]

 2023-09-07 阅读 26 评论 0

摘要:Shell脚本相关命令介绍一句话说明shell脚本是个啥linux重复运行shell命令,shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能类似windows下的批处理文件 一般以sh为文件后缀语法程序结构shell脚本循环、一张图说明shell脚本的结构是怎样的 如上图所示右边就是最简

Shell脚本相关命令

f979bcd7080b2c4e859bf076e2ca4ce3.png

介绍

一句话说明shell脚本是个啥

linux重复运行shell命令,shell脚本就是将多个shell指令汇集到一起去完成一个复杂的功能

类似windows下的批处理文件 一般以sh为文件后缀

语法

程序结构

shell脚本循环、一张图说明shell脚本的结构是怎样的

70051c5957b5b1bd9e6eb5b844d784b1.png

如上图所示

右边就是最简单的一个shell脚本 , 功能是打印出"Hello World

左边就是它对应的一个程序结构 ,依次是 shell版本声明 注释部分声明 环境变量声明 程序主体 退出返回

linux shell 循环、下面依次讲解

shell版本声明

第一行 #!/bin/bash 声明这个 脚本 使用的shell版本:

因为shell有很多种类型 比如sh,bash,csh,tcsh

linux循环?如果不指定版本 系统会不知道用哪一个版本的shell去处理这个脚本

所以会报错

一般linux发行版默认内置的是bash 所以一般是写#!/bin/bash

注释部分声明

说明程序的作者 功能 编辑时间等等信息

环境变量声明

环境变量是用来定义系统运行环境的一些参数的变量

比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。

具体可以看后端开发必须掌握的Linux命令[变量篇]中的讲解

其中比较重要的一个环境变量是PATH

它代表的是一系列路径的字符串集合

它默认存放了下面的路径地址 如

usr/local/sbin

/usr/local/bin

/usr/sbin

/usr/bin等等

比如当你在shell脚本中调用命令echo的时候

本质上系统就会从PATH存放的路径集合中

去寻找这些路径中是不是包含了命令echo对应的可执行文件

如果找的到 就执行 如果找不到的话你调用echo就会报错

这样就有一个问题

假如你调用的一个比较陌生的命令

它所对应的文件路径

不在PATH默认的路径集合中中

你就需要把它加入PATH (用冒号 等于号)

然后在对它重新声明为环境变量(用export)

这样才可以 否则还是会报错的

一般常用的命令比如ls echo 等等

是默认已经包含在PATH变量的路径集合中了 所以开头不需要声明

这里只是为了讲解程序的标准结构故引出来了

程序主体

普通语句

就是用普通的命令组成的语句

条件语句

简单的if …then

d1ea8427b80b98a0d994b999fba7407e.png

实例:

57adf4253e5e453e41ec9d06af9ea16a.png

复杂的if …then

8b39fdd06d49dd1bdd92747d1ea6d6f0.png

实例:

eee335e0cceb5b2fc1f7dd0218e67960.png

7f5c106f5d934ee9f729accdb381c02b.png

case…esac

a8092e26a2a4fdd960d9fd792dad9a51.png

实例:

9c9e7e3717bef172ad962217cfbf4457.png

循环语句

while do done

当while中的条件为真的时候就继续执行

2ab01e3034341d7eb7d85fdba1147026.png

实例:

df9375c2b758c0ca0bedf094d5455ff0.png

until do done

当until中的条件为真的时候就结束执行

e74f8ef0151910302685b9f71e0d3e29.png

实例:

7e470377c610209712deb9d5aadccbd3.png

for…do…done

c07b43d4efb098cceeba106f51a29615.png

实例:

995229fd1a7df098b32e8cdd0a964cf0.png

for…do…done的数值处理结构

e2001ad50ae1dc0391b809ae44ddf10f.png

实例:

74498bc50e4d54b53495dadd74eb1acb.png

退出返回

在我们这个例子当中,使用 exit 0 ,

这代表离开 script 并且回传一个 0 给系统,

所以执行完这个 script 后,若接着下达 echo $? 则可得到0 值!

利用这个 exit n (n 是数字) 的功能,我们还可以自定义错误返回值 从而使程序更聪明

执行

假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限

执行方法一:通过路径

1、相对路径

cd /data/shell

./hello.sh

2、绝对路径

/data/shell/hello.sh

执行方法二:通过sh或bash

sh

cd /data/shell

sh hello.sh

bash

cd /data/shell

bash hello.sh

执行方法三:通过 source 或.(点号)

source

cd /data/shell

source hello.sh

.

cd /data/shell

. hello.sh

区别:

1.绝对路径和相对路径没有什么区别,两种方式都需要提前赋予脚本以执行权限。

2.sh或者bash方式是把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。

前两种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。

3.source或者.方式是使脚本内容在当前shell里执行,而不是单独开子shell执行。

4.开子shell与不开子shell的区别就在于,环境变量的继承关系,如在子shell中设置的当前变量,

不做特殊通道处理的话,父shell是不可见的。

而在当前shell中执行的话,则所有设置的环境变量都是直接生效可用的。

调试

c84258b7a4a662d066d68e831ce08d6a.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/18733.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息