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)(()):运算符 ![](https://file.jishuzhan.net/article/1779646868830031874/f013037a724da668321baa4e445a1132.webp) 4、read 参数: -p:输入提示信息 -n:字符数,限制用户输入的参数的字符数量 -t:秒数:确定等待的时间,如果在规定秒数内用户没有输入的话,则终止该进程 -s:将用户输入隐藏起来 ![](https://file.jishuzhan.net/article/1779646868830031874/b351a47b3a447d8c3069bf063a6247da.webp) 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 不为空 ![](https://file.jishuzhan.net/article/1779646868830031874/22b64e15b710f6b912a41f873911e18f.webp) ![](https://file.jishuzhan.net/article/1779646868830031874/752f6f14967607e2b3e94b10a4a1e98c.webp) 6、while while \[ 条件 \] do 代码 done ![](https://file.jishuzhan.net/article/1779646868830031874/4b0e3c984215fa3d035a490d47072cec.webp)

相关推荐
小宋102142 分钟前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
m0_609000421 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
小安运维日记2 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
kejijianwen3 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
CoolTiger、5 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
m0_741768855 小时前
使用docker的小例子
运维·docker·容器
学习3人组6 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神6 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0666 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen016 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器