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

相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush44 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz4 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工5 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩5 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_5 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化