Shell编程规范与变量

Shell脚本

概念

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

执行命令流程的交互区别

  • 交互式
    • 用户直接与命令行交互,实时输入和接收命令行程序的输出
  • 非交互式
    • 命令在执行时按照脚本文件中预先定义好的指令顺序执行,并且通常不会从用户终端获取输入
    • Shell脚本执行的流程就是非交互式

Shell脚本应用场景

  • 重复性操作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
  • 巡检

Shell的作用

  • Shell的作用 —— 命令解释器,“翻译官”
    • 介于系统内核与用户之间,负责解释命令行,解释的结果发送给内核,内核再向硬件发送指令
    • 每个操作系统都可以支持多个不同的解释器
    • 每个系统的解释器不一定支持相同的脚本

列出系统中全部解释器

CentOS系统默认的解释器就是bash


实验

脚本的基本书写格式和执行命令 

 


指定解释器的方式执行脚本

指定路径方式执行脚本

需要拥有被执行脚本的执行权限

相对路径


直接加载脚本

重定向

重新定义输出的方向 

  • 尖括号往右指是重定向标准输出>, >>
  • 尖括号往左指是重定向输入<, <<
覆盖输出

追加输出

重定向输入 

输出新建一个存放密码的文件

新建一个用户

比如修改一个用户的密码,通过passwd的--stdin选项,指走标准输入的设备,默认设备是键盘,
这里指定为文件,就将密码设为文件中的字符串了
前提是关闭内核安全机制

通过脚本实现

错误重定向

把提示的错误信息单独提取出来放入文本中

  • 标准输出 :1>
    • 正常信息输出到指定文件,错误信息在终端显示
  • 错误输出:2>
    • 正常信息在终端显示,错误信息输出到指定文件中
  • 标准输出和错误输出同时重定向:&>
    • 正常信息和错误信息都输出到指定文件中

比如在检测一个源码软件包所需依赖时

使用 ./configure 2>error.log命令

 管道符

作用:过滤

比如要只查看根分区的挂载信息
使用 df 命令并通过管道符过滤

相关命令

命令说明
df -h | grep "d"显示df命令输出的内容中包含 " d " 的行
df -h | grep "/$"显示df命令输出的内容中以 " / " 结尾的行
df -h | grep "/$"| awk '{print $6}显示df命令输出的内容中以 " / " 结尾的行中的第6列
grep "root" /etc/passwd grep "bash"显示 /etc/passwd 文件内容以root开头bash结尾的行

变量

变量是用于存储数据值的名称
变量一般存放在内存中,所以当重启主机后,没有文件保存的变量会消失

取消变量

引号

  • 如果声明字符串,并且字符串中带有空格的情况下,要加引号
  • 如果要声明数字,就不能加引号 

反撇号

如果要在变量中加入命令,要用反撇号包起来 

 

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值