shell脚本

日常运维工作大部分是一些繁琐的重复的工作,每天80%的工作就是重复干昨天的事,而且工作量还比较大,因此运维有两个选择:

  • 自己搞定一切
  • 让机器搞定一切

学习shell分为几个阶段:

  1. 能看懂shell脚本
  2. 能改shell脚本
  3. 能自己写shell脚本
  4. 能优化shell脚本

shell介绍

  1. 什么是shell

    shell是一个程序,采用c语言编写,是用户和linux内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。通过一个图表来查看一下shell的作用:

    image-20211015104057796

    kernel:为软件服务,接收用户或软件指令驱动硬件,完成工作,只能识别01

    shell:命令解释器,会将用户的高级语言转化为二进制

    user:用户接口,对接用户

  2. shell的功能

    • 命令行解释功能
    • 启动程序
    • 输入输出重定向
    • 管道连接
    • 文件名置换(echo/*)
    • 变量维护
    • 环境控制
    • shell编程

shell语法

shell脚本就是将完成一个任务的所有命令按照执行先后的顺序,自上而下写入到一个文本文件中,然后给予执行权限

  1. 如何书写一个shell脚本

    1. shell脚本命名:

      名字要有意义,最好不要用a、b、c、1、2、3这种方式命名;虽然linux系统中,文件没有扩展名的概念,仍然建议用.sh结尾;名字不要太长,最好能30个自己以内解决

    2. shell脚本格式:

      • shell脚本开头必须指定脚本运行环境,以 #! 这个特殊符号组合来组成。如: #!/bin/bash 指定该脚本是运行解析有/bin/bash来完成的
      • 代表注释

      • 在脚本中加上:

        #Author: xxx 作者
        #Created Time: xxxx/xx/xx xx:xx 创建时间
        #Release: xx 脚本版本
        #Script Description: xxxxxx 脚本描述
      • 脚本组成

        解释环境:也可以这样写:#! /usr/bin/env bash |python|perl

        注释说明

        执行代码

  2. 如何运行shell脚本

    1. 给执行权限

      chmod 700 filename + ./xxx.sh

    2. 解释器直接运行,不需要给权限

      sh xxx.sh

  3. shell中的特殊符号

    image-20211015121054893

    注:

    ​ !表示上个指令,!!表示上上个指令,也可以通过history查看历史命令的序号,通过!+序号来执行历史命令

  4. shell中的管道运用

    | 管道符在shell中是使用最多的,很多组合命令都需要通过组合命令来完成输出。管道符其实就是下一个命令对上一个命令的输出做处理

  5. 重定向

    09569-doqsz5ehjwp.png

  6. expr

    expr + ' ' + int + ' ' + x + ' ' + int,可以进行数学运算,双小括号(())也可以做运算

    42422-2o79vbemffj.png

    12082-nkir2ento5.png

    linux中的计算器:bc,默认也不支持小数点,要加上"scale=2",表示小数点后两位

  7. 退出脚本

    exit NUM: 退出脚本,释放系统资源,NUM代表一个整数,代表返回值(1-255)

最后修改:2021 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏