博客
关于我
shell脚本——shell编程规范与变量
阅读量:694 次
发布时间:2019-03-17

本文共 1476 字,大约阅读时间需要 4 分钟。

Shell脚本——Shell编程规范与变量

一、Shell脚本概述

1. Shell的概念

Shell脚本(Shell Script)是一种用于执行一系列命令的文本文件,将这些命令按顺序存储,便于批量操作或定时执行,主要应用于系统管理员的日常管理任务。

2. Shell的作用——“命令翻译器”

Shell作为连接系统内核和用户的桥梁,负责将用户输入的命令解释并转化为系统内核能够执行的操作,最后将执行结果反馈给用户。

3. Shell脚本的应用场景
  • 重复性操作:适合处理大量相同或相似的任务。
  • 交互性任务:涉及用户交互的应用。
  • 批量事务处理:处理需要大量文件或数据的任务。
  • 服务运行状态监控:定期检查系统运行状态。
  • 定时任务执行:通过crondisk定时启动脚本任务。

二、Shell编程规范

1. 用户登录Shell

默认登录Shell程序为/bin/bash,各类shell的内部指令和环境差异较大,具体特性需结合使用的shell具体情况。

2. Shell脚本的组成
  • 脚本宣言:使用#!/bin/bash等注明解释器。
  • 注释信息:以#开头的行为注释,不会被执行。
  • 可执行语句:如echo命令用作信息输出。
3. Shell脚本的执行
  • 通过命令执行
    • 绝对路径:/root/first.sh
    • 相对路径:./first.sh
  • 通过指定Shell解释脚本
    • 使用特定Shell:sh first.sh
    • 在当前目录中运行:. first.shsource first.sh
  • 三、管道

    1. 管道的使用场景

    将命令行的输出作为下一个命令的输入,实现命令组合。

    2. 常见管道格式
    命令1 | 命令2 | ... | 命令n

    四、重定向

    1. 重定向的文件类型
    • 标准输入(stdin):/dev/stdin
    • 标准输出(stdout):/dev/stdout
    • 标准错误输出(stderr):/dev/stderr
    2. 重定向操作符
    • >:将输出覆盖到指定文件。
    • >>:将输出追加到指定文件。
    • 2>:将错误输出覆盖到指定文件。
    • 2>>:将错误输出追加到指定文件。
    • >&:将标准输出与错误输出结合。
    • 2>&1:将错误输出与标准输出结合。

    五、Shell脚本变量

    1. 变量的作用

    变量用于存储系统或用户特定的参数,变量名由字母或下划线构成,区分大小写。

    2. 变量类型
  • 自定义变量:用户定义的变量,可随意修改。
  • 特殊变量
    • 环境变量:由系统维护,设置工作环境。
    • 只读变量:用户不可修改。
    • 位置变量:通过命令行传递参数。
    • 预定义变量:bash内置变量,不能直接修改。
  • 六、Shell脚本变量——自定义变量

    1. 定义变量
    变量名=变量值
    • 变量命名规则:以字母或下划线开头,区分大小写,建议使用全大写。
    • 示例:

    my_var="Hello, World!"

    ##### 2. 查看变量值使用`echo`命令查询:```bashecho $my_var
    3. 赋值技巧
    • 双引号:支持变量引用,$保留为字面字符。
    • 单引号$视为普通字符,不进行变量替换。
    • 反撇号:执行命令并提取输出结果。
    4. 从键盘读取输入
    • 方法一(带提示信息):
      read -p "请输入内容:" my_input
    • 方法二(无提示信息):
      read my_input
    5. 占位符

    使用占位符进行赋值,如$1代表第一条命令线参数。

    七、Shell脚本变量——特殊变量

    • 环境变量:如PATHHOME,由系统维护。
    • 位置变量:通过传递参数访问如$1$2
    • 预定义变量:如UIDGID,不能修改。

    转载地址:http://riphz.baihongyu.com/

    你可能感兴趣的文章
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>