码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本规范与变量运用

时间:2019-12-02 15:28:47      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:进程   就是   expr   解释器   类型   标准输出   混合   命令替换   区分大小写   

前言
随着Linux系统在企业中应用的越来越多,服务器自动化管理也变得越来越重要。Linux服务器自动化维护工作中,除了计划任务的设置外,shell脚本的应用也是非常重要的一部分。
什么是shell脚本
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
shell脚本的应用场景:

  • 重复性操作
  • 批量事务处理
  • 自动化运维
  • 服务运行状态监控
  • 定时任务执行
  • ......
    注意!shell脚本必须是可执行文件(chmod +x ...)
    shell的作用——命令解释器,翻译官
    技术图片
    /bin/bash支撑shell脚本的运行
    Linux压缩内核放在/boot/目录下
    编写shell脚本代码
  • 使用vi文本编辑器
  • 每行一条Linux命令,按执行顺序一次编写
    执行脚本文件啊
    技术图片
    用source执行命令会切换路径执行,用sh 不会切换路径
    “ . / ” 的执行方式和sh一样
    技术图片
    技术图片
    重定向与管道操作
    交互式硬件设备
    标准输入:从该设备接收用户输入的数据
    标准输出:通过该设备向用户输出数据
    标准错误:通过该设备报告执行出错信息
    技术图片
    重定向操作
    技术图片
    管道操作符号" | "
    Shell变量的作用、类型
    变量的作用
    为灵活管理Linux系统提供特定参数,有两层意思
  • 变量名:使用固定的名称,由系统预设或用户定义
  • 变量值:能够根据用户设置、系统环境的变化而变化
    变量的类型

  • 自定义变量:由用户自己定义、修改和使用
  • 环境变量:由系统维护,用于设置工作环境
  • 位置变量:通过命令行给脚本程序传递参数
  • 预定义变量:Bash中内置的一类变量,不能直接修改
    自定义变量
    定义一个新的变量
    变量名以字母或下划线开头,区分大小写,建议全大写
    变量名=变量值(“=”赋予符号)
    技术图片
    查看变量的值,用“echo”命令

技术图片
技术图片
赋值时使用引号

  • 双引号:允许通过$符号引用其他变量值
  • 单引号:禁止引用其他变量值,$视为普通字符
  • 反撇号:命令替换,提取命令执行后的输出结果
    从键盘输入内容为变量赋值
    read [-p "提示信息"] 变量名

    技术图片
    技术图片

设置变量的作用范围,两种格式可以混合使用
格式1:export 变量名
格式2:export 变量名=变量值
整数变量的运算
expr 变量1 运算符 变量2 [运算符 变量3] ……
常用运算符

  • 加法运算:+
  • 减法运算:-
  • 乘法运算:*
  • 除法运算:/
  • 求模(取余)运算:%
    技术图片
    特殊的Shell变量
    环境变量
    由系统提前创建,用来设置用户的工作环境
    配置文件:/etc/profile、~/.bash_profile
    常见的环境变量:
  • PWD、PATH
  • USER、SHELL、HOME
    位置变量
  • 表示为$n,n为1~9之间的数字
    预定义变量
  • $#:命令行中位置变量的个数
  • $*:所有位置变量的内容
  • $?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
  • $0:当前执行的进程/程序名
    技术图片
    技术图片
    技术图片

shell脚本规范与变量运用

标签:进程   就是   expr   解释器   类型   标准输出   混合   命令替换   区分大小写   

原文地址:https://blog.51cto.com/14557905/2455219

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!