Shell脚本变量

Shell脚本概述:

●将要执行的命令按顺序保存到一个文本文件
●将该文件可执行权限
●可结合各种Shell控制语句以完成更复杂的操作
●按顺序去执行;还需给该文件可执行权限,可以结合各种shell控制语句,已完成更复杂的操作

Shell脚本应用场景

  • Shell脚本应用于重复性的操作;巡检
    ●重复性操作
    ●交互性任务
    ●批量事务处理
    ●服务运行状态监控
    ●定时任务执行

Shell脚本作用

●Shell的作用–命令解释器,“翻译官”
●介于系统内核与用户之间,负责解释命令行
●Shell和内核打交道,内核和系统打交道
●Shell可以控制应用程序,应用程序同时也可以控制shell,然后反应给Linux内核,内核在反应给系统硬件;系统硬件改完配置后最后反馈给用户。
大体流程图:
在这里插入图片描述

用户的登录Shell

●登录后默认使用的Shell程序,一般为/bin/bash
●不同Shell的内部命令,运行环境等会有所区别
在这里插入图片描述
●type 命令可以直接查看某条命令的详细细节,是内部命令还是外部命令,还是某条命令的别名
在这里插入图片描述

编写一个Shell脚本:

编写脚本代码

●使用vim文本编辑器

●每行一条Linux命令,按执行顺序依次编写

●写脚本要以sh为结尾,开头要有声明,注释:但不发挥作用
在这里插入图片描述
●赋予可执行权限:一定要给执行权限
在这里插入图片描述

执行脚本文件

方法一:脚本文件路径(绝对路径与相对路径)./方法去执行的话,必须要有执行权限,环境也不会发生变化
在这里插入图片描述
方法二:sh脚本文件路径,sh方法可以不用x执行权限,直接sh 脚本路径,环境不会发生变化
在这里插入图片描述
方法三:source脚本文件,可以将source换成.环境会发生变化,也支持没有x执行权限
在这里插入图片描述
. first.sh等同于source
在这里插入图片描述
更完善的脚本构成:
●脚本声明
●注释信息
●可执行语句
echo “”代表字符串,每一个字都是字符,将字符组合起来就是字符串
在这里插入图片描述
显示为:
在这里插入图片描述

重定向与管道操作:

交互式硬件设备

标准输入:从该设备接收用户输入的数据

标准输出:通过该设备向用户输出数据

标准错误:通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
便准输出/dev/stdout1显示器
标准错误输出/edev/stderr2显示器

重定向操作:

类型操作符用途
重定向输入<从指定文件读取数据,而不是从键盘输入
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
将输出结果追加到指定的文件尾部
标准错误输出2>将错误信息保存到指定的文件(覆盖原有内容)
2>>将错误信息追加到指定的文件中
混合输出&>将标准输出,标准错误的内容保存到同一文件中

标准错误输入:2>
OPT目录中没有123.txt文件,所以cat 123.txt是错误信息,将错误信息输入到30.txt中,会覆盖原有内容
在这里插入图片描述
2》:
OPT目录中没有321.txt文件,所以cat 321.txt是错误信息,将错误信息追加输入到30.txt中,不会覆盖
在这里插入图片描述
混合输入&>
将安装apache服务信息输入到30.txt文本中
在这里插入图片描述
将安装信息导入到黑洞中 /dev/null是Linux黑洞,东西丢进去就没了
在这里插入图片描述

管道操作符号“|”

将左侧的命令输出结果,作为右侧命令的处理对象

grep “bash$” /etc/passwd | awk -F: ‘{print $1,$7}’

awk 按列过滤 -F 如果不写-F就会以空格和制表符(tabel键)分割

:代表以冒号为分割条件 $1 第1列 $7 第7列
在这里插入图片描述

Shell变量的作用和类型:

变量的作用

●用来存放系统和用户需要使用的特定参数(值),变量存储于内存当中

●变量名:使用固定的名称,由系统预设或用户定义,名称可以是可以人为定义

●变量值:能够根据用户设置,系统环境的变化而变化

变量的类型

●自定义变量:由用户自己定义,修改和使用

●特殊变量:环境变量,只读变量,位置变量,预定义变量

●不变的是常量,变量不能以数字为开头

●定义一个新的变量
变量名以字母或下划线开头,区分大小写,建议全大写
变量名=变量值
在这里插入图片描述
●注意变量名在左,变量值在右 =赋值符号 ==是等于

查看变量的值

Echo $变量名

想调用前面必须加$符号

想真正存放的两种方法:1.存放到文件中 2.存放到数据库中
在这里插入图片描述

变量数据类型

  • 数值:
数值:
类型英文大小举例特点
整形int4字节0;1;10;1001不带小数点,完整的
浮点型Float 单精度浮点4字节10.1 3.14带有小数点
Double双精度浮点8字节
  • 非数值:

●字符 char 1字节或者2字节 英文是1字节 中文是2字节 字符集问题 支持中文UTF-8 遇到乱码要先去看字符集;字符:比如‘a’ ‘z’ ‘男’ ‘女’这叫一个字符

●java语言中 字母是2字节

●字符串:字符的集合,比如“hellow world” 11个字符,其中空格也算字符(手敲的) ;字符串的处理规则 正则表达式

●布尔值:决定事物是否成立或者不成立 true成立 false不成立

●条件语句 循环语句会反复用到

●枚举 比如颜色(红色;蓝色…)是限定在一定范围内,不可以取小数点

●强语言:静态语言

●弱语言:动态语言可以变动

强语言和弱语言区别 弱语言可以变 强语言一上来会声明类型
在这里插入图片描述

赋值时使用引号

●双引号:允许通过$符号引用其他变量值
在这里插入图片描述

●单引号:禁止引用其他变量值,$视为普通字符
在这里插入图片描述

●反撇号:命令替换,提取命令执行后的输出结果,``中间放的是命令
在这里插入图片描述
●还有一种命令替换方法:$()
在这里插入图片描述
●Read指令
Read [-p 提示信息]
在这里插入图片描述

设置变量的作用范围

全局声明变量,export
●格式1:export 变量名
●格式2:export 变量名=变量值
在这里插入图片描述

整数变量的运算

●Expr 变量1 运算符 变量2 [运算符 变量3]

●常用运算符:

●加法运算: +
在这里插入图片描述
●减法运算: -
在这里插入图片描述
●乘法运算:*
注:这边DELL电脑“\”打出来为¥
*前面加\:代表转意的意思
在这里插入图片描述
●除法运算:/
在这里插入图片描述
●求模取余算法:%
5除2等于2余1,所以会显示为1
在这里插入图片描述
执行脚本a+b
在这里插入图片描述
执行结果:
在这里插入图片描述

环境变量:

●由系统提前创建,用来设置用户的工作环境

●配置文件:/etc/profile. ~/.bash_profile

常见的环境变量:
PWD PATH
系统环境变量;用户环境变量
USER SHELL GOME
在这里插入图片描述

只读变量

用于变量值不允许被修改的情况,只读变量不能被删除,但是重启后就没了,换个bash环境也就没了
在这里插入图片描述
换个bash环境后就失效了
在这里插入图片描述

预定义变量

$#:命令行中位置变量的个数
Abc.sh中由 33 44 55 有3个个数
$*:所有位置变量的内容
$?:上一行命令执行后返回的状态,但返回状态值为0时表示执行正常,非0值表示执行异常或出错
$0:当前执行的进程/程序名
在这里插入图片描述
$*代表的是操作对象;这边在OPT目录下创建了abc.txt 5个文件。将5个文件打包压缩,那么操作对象是5个文本,操作内容为abc1.txt 2.txt 3.txt…而操作名称为a.sh
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值