linux的shell脚本编写(1)

1、变量的分类:

1)自定义变量

变量名=变量值,之间不能用空格隔开,否则shell会把变量名解析成命令,而不是变量。用户自定义变量只在当前shell生效,当前shell的子shell无效

2)环境变量

对系统生效的环境变量名和变量作用是固定的,对当前shell以及当前shell的子shell都有效

3)位置参数变量

n:n为数字,0表示命令本身,也就是没有输入参数,1-9代表第一个到第九个参数,十个以上的参数需要用大括号包含,如${10}

$*:代表所有参数,并把参数看成整体,不分割。

$@:看成整体,但是每个数又独立。

4)预定义变量

$?:判断上一次命令是否正确执行,如果正确执行的话,则返回0,否则则返回程序指定的返回值

$$:返回当前进程的进程号(PID)

$!:后台运行的最后进程的进程号

&&:前一个命令正确执行,后一个才执行(与运算)。

||:代表或,前一个命令不正确,后一个才执行。

:不论命令正确与否,一次执行命令

5)变量的查看 set env

删除变量 unset

变量的叠加

2、shell

1)是 Linux 的一个外壳,它包在 Linux 内核的外面 ,为用户和内核之间的交互提供了一个接口。当用户下达指令给操作系统的时候,实际上是把指令告诉 shell ,经过 shell 解释,处理后让内核作出相应的动作---命令解释器

2)外置命令

通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等

3)内置命令

内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中

3、编写shell脚本

1)shell种类

zsh 是 Linux 最大的 Shell 之一

sh 就是 Bourne Shell 的缩写

bash 是 Bourne Again Shell 的缩写也是 Linux 系统 默认使用的 shell,

ksh 是 Korn shell 的缩写 , 由 Eric Gisin 编写

csh 是 Linux 比较大的内核

2)批处理:将多个命令放在一块执行,脚本从上到下,从左到右

3)当给予脚本有执行权限时,运行方法:

相对路径:./脚本

绝对路径:绝对路径 的脚本直接运行

4) 当给予脚本没有执行权限时 :

bash 或 sh 脚本

5)通配符 :匹配文件名

正则表达式:匹配文件内容

6)(()):运算符

4、read

参数:

-p:输入提示信息

-n:字符数,限制用户输入的参数的字符数量

-t:秒数:确定等待的时间,如果在规定秒数内用户没有输入的话,则终止该进程

-s:将用户输入隐藏起来

5、 if语句

if 判断所给予的值是否为真,如果为真则执行 then 的命令 , 如果 if 值在第一个判断不为真,则 进入 elif 的第二个判断,确认是否为真,如果为真 则执行 then 下的命令。如果结果为非真,则执行 else 后的命令 , fi 是 if 判断的结束标记

1)格式 :

if 判断条件1是否为真 then

command ←- 为真则执行此命令

elif 判断条件2是否为真 then

command ←- 为真则执行此命令

elif 判断条件3是否为真 then

command ←- 为真则执行此命令

else command

fi

2)数值测试

-eq 等于

-ne不等于

-gt大于

-ge大于等于

-lt小于

-le小于等于

3)字串测试

= 等于

!= 不等于

-Z 为空

-n 不为空

6、while

while 条件

do

代码

done

相关推荐
AOwhisky26 分钟前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭1 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408
Mr.HeBoYan1 小时前
DPDK为什么越来越少使用rte_ring?——从Lock-Free到Run-to-Completion,重新理解现代DPDK架构演进(上)
linux·网络·算法·性能优化·架构·dpdk
XTIOT6661 小时前
CRPT 诚实标识采集落地技术实践:分工况硬件选型与合规数据标准化解决方案
大数据·运维·人工智能·嵌入式硬件·物联网
云栖梦泽2 小时前
从 IMX415 摄像头驱动理解 Media Controller 框架
linux·开发语言·c++·嵌入式硬件
纳兰青华2 小时前
CentOS Stream 9 下载与安装完全指南:为什么它是当前最稳妥的选择?
linux
白白白飘2 小时前
【8】补充与拓展:Langchain的联网搜索Agent,使用Tavily工具
服务器·网络·langchain
草邦设计开发团队_媒体资源平台2 小时前
Linux 稳定常驻启动 PHP 队列,服务器重启自动恢复
linux·服务器·php·队列执行
想你依然心痛2 小时前
嵌入式容器:Docker与BalenaOS在边缘设备上的实践——容器运行时与OTA
运维·docker·容器
竣达技术3 小时前
NAS / 服务器断电数据丢失?UPS 配套 USB关机保护板,市电断电池低自动提示服务器/电脑关机
运维·服务器·电脑