shell脚本和编程|青训营笔记

60 阅读2分钟
shell

价值

  1.Linux服务器的基本操作和管理
  2.前端Node.js服务的进程管理,问题排查,资源监控等运维操作
  3.使用shell编写Tce,Scm,Docker脚本,完成服务编译和部署
  

基础概念

    处理终端模拟器输入,解释执行后输出结果给终端
    Bash是shell一种具体实现
    
    

构成

  解释器 
      
      bash内置命令
      GNU核心工具集
      第三方库
      
  编程语言
  
      变量
           自定义变量
           环境变量
           系统环境变量
      运算
           逻辑运算符
           算术运算符
      语句
           判断
           分支
           循环
      函数
      
      
语法和变量

变量

 类型        | 作用域              | 声明方式         |规范

 自定义变量   | 当前shell          | =                 |字符串,整型,浮点型,日期型                                                         型

 环境变量    | 当前shell及其子shell |export,declare -x|          |
 
 系统环境变量 |  所有shell         |启动加载

自定义变量

  变量名=变量值(等号左右不能有空格)
  默认字符串,不会进行+运算,需声明
  

系统环境变量

配置文件加载

运算符和引用

管道

 管道与管道符|,作用是将一个命令的结果传递给后面的命令
 语法:cmd1|camd2
 要求:管道右侧的命令必须接受标准输入才行,比如grep命令,ls,mv等不能直接使用,可以使用xargs处理
 注意:管道命令仅仅处理stdout,对stderr会予以忽略,可以使用set-o pipefall设置shell遇到管道错误退出
 

重定向

输出定向符:
          >:覆盖写入文件
          >>:追加写入文件
          2>:错误输出写入文件
          &>:正确和错误输出统一写入到文件中
          
输入重定向符
          <
          <<
          

判断命令

 判断符号:
        test,[,[[
 
 用途:
       整数测试
       字符串测试
       文件测试
 
 语法:
      test condition
      [condition]
      [[condition]]
      
    *中括号前后要有空格符
    *[和test是命令,只能使用自己支持的标志位,<,>,=只能用来比较字符串
    *中括号内变量,最好都用引号括起来
    *[[更丰富,在整型中比较支持<,>,=,在字符串中比较支持=~正则