博客
关于我
Shell编程规范与变量
阅读量:378 次
发布时间:2019-03-05

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

Shell编程规范与变量

Shell脚本概述

Shell是一种特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色。它负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell,各 Shell 之间在内部指令和运行环境上可能存在差异。

Shell的作用

Shell的主要作用是作为命令解释器,充当用户与系统之间的桥梁。它的核心功能包括:

  • 介于系统内核与用户之间,负责解释命令行输入
  • 将用户输入的命令转化为系统内核能够理解的操作
  • 输出执行结果或错误信息
  • Shell脚本的概念

    Shell脚本是一种通过保存并执行一系列命令的文本文件来实现的自动化操作。其主要特点包括:

  • 脚本文件需要赋予可执行权限
  • 可以结合 Shell 的控制语句,实现复杂操作
  • Shell脚本的应用场景

    Shell脚本广泛应用于以下场景:

  • 重复性操作
  • 交互式任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
  • Shell脚本的构成与编写

  • 脚本声明:第一行为“#!/bin/bash”,表示脚本使用 Bash 解释。
  • 注释信息:以“#”开头的语句为注释,不会被执行。
  • 可执行语句:如 echo 命令用于输出字符串。
  • Shell脚本的执行

  • 通过命令赋予可执行权限

    • 绝对路径:chmod +x /root/first.sh
    • 相对路径:chmod +x ./first.sh
  • 指定 Shell 解释脚本

    • 使用 sh 命令:sh first.sh
    • 使用 source 命令:source first.sh. first.sh
  • 重定向和管道操作

  • 标准输入、输出和错误

    • 标准输入/dev/stdin
    • 标准输出/dev/stdout
    • 标准错误/dev/stderr
  • 重定向操作

    • >:将标准输出保存到指定文件
    • >>:将标准输出追加到指定文件
    • 2>:将标准错误保存到指定文件
    • 2>>:将标准错误追加到指定文件
    • &>:将标准输出和标准错误混合保存
    • 2>&1:将标准错误重定向到标准输出
  • 管道操作

    • 使用 | 将命令的输出作为下一个命令的输入
    • 示例:ps aux | wc -l
  • Shell变量的作用与分类

  • 变量的作用

    • 用于存储系统和用户需要使用的特定参数或值
  • 变量分类

    • 自定义变量:由用户定义和修改
    • 环境变量:由系统维护,设置工作环境
    • 位置变量:通过命令行传递参数
    • 预定义变量:Bash 内置变量,不能直接修改
  • 自定义变量

  • 变量赋值

    • 单引号:$ 不被解析
    • 双引号:$ 可以解析其他变量
    • 反撇号:用于命令替换
  • 从键盘获取输入

    • 使用 read 命令:read -p "提示信息" 变量名
  • 变量作用范围

    • 局部变量:只在当前 Shell 环境中有效
    • 全局变量:通过 export 命令导出
  • 整数运算

    • 使用 expr$(()) 计算
  • 浮点运算

    • 使用 bcawk 进行浮点运算
  • 特殊的 Shell 变量

  • 环境变量

    • 常用环境变量:USERHOMEPATHPWDLANG
  • 只读变量

    • 使用 readonly 命令设置只读变量
  • 位置变量

    • $n:表示命令或脚本的参数,$0 表示脚本名称
  • 预定义变量

    • $*$@:处理命令或脚本参数
    • $#:表示参数个数
    • $?:表示前一条命令的返回状态
  • 转载地址:http://kwag.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | OpenCV中八种不同的目标追踪算法
    查看>>
    OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
    查看>>
    OpenCV与AI深度学习 | OpenCV如何读取仪表中的指针刻度
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(一) :直接拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(三):基于特征匹配拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(二) :基于模板匹配拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | T-Rex Label !超震撼 AI 自动标注工具,开箱即用、检测一切
    查看>>
    OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
    查看>>
    OpenCV与AI深度学习 | YOLOv10在PyTorch和OpenVINO中推理对比
    查看>>
    OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
    查看>>
    OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码+数据集!)
    查看>>
    OpenCV与AI深度学习 | YOLOv8重磅升级,新增旋转目标检测,又该学习了!
    查看>>
    OpenCV与AI深度学习 | 一文带你读懂YOLOv1~YOLOv11(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | 五分钟快速搭建一个实时人脸口罩检测系统(OpenCV+PaddleHub 含源码)
    查看>>
    OpenCV与AI深度学习 | 什么是 COCO 数据集?
    查看>>
    OpenCV与AI深度学习 | 低对比度缺陷检测应用实例--LCD屏幕脏污检测
    查看>>
    OpenCV与AI深度学习 | 使用 MoveNet Lightning 和 OpenCV 实现实时姿势检测
    查看>>
    OpenCV与AI深度学习 | 使用 OpenCV 创建自定义图像滤镜
    查看>>