shell编程规范与变量
    一.shell脚本概述
    ① 什么是shell? Linux中有哪些shell?
    ② shell的作用
   ③ 用户的登录shell
    ④ shell脚本的概念
    ⑤ shell脚本应用场景
二.shell编程规范
    ① 编写脚本代码
    ② shell脚本的构成
    ③ shell脚本的执行
三.重定向与管道操作
    ① 管道操作
    ② 重定向
四.shell变量的作用、类型
    ① 变量的作用
    ② 变量的类型
   ▷ 自定义变量
    ▷ 环境变量
    ▷ readonly命令设置只读变量
    ▷ 位置变量
    ▷ 预定义变量
    ▷ 整数变量的运算
    ▷ bash不支持浮点运算,如果需要进行浮点运算,需要借助bc, awk 处理
总结

一.shell脚本概述
① 什么是shell? Linux中有哪些shell?
什么是shell?

• 就是与内核沟通的界面、应用程序、KDE等等。比如你要播放音乐,你的计算机通过你在Shell输入的打开音乐的命令,Shell在告诉操作系统的内核用户希望打开音乐,内核在通过cpu调度、内存管理、磁盘输入输出等工作,将硬件调动,这时硬件声卡才会工作,硬件才是实际的工作者

• Shell ( 壳程序)是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果

Linux中有哪些Shell?

• 检查一下/etc/shells这个文件,里面就是Linux所包含的Shell

• 最常用的就是bash、tcsh、csh、 sh、nologin这些shell。这些shell都是依据Linux发展者的不同所创造出的不同版本

bash: 基准于GNU的框架下发展出的Shell
csh: 语法有点类似于c语言的Shell
tcsh: 整合了csh,提供更多的功能
sh: 已经被bash所替换
nologin: 奇怪的shell,这个shell可以让用户无法登录主机

注: bash ( /bin/bash)是目前大多数Linux 版本采用的默认Shell

② shell的作用
介于系统内核与用户之间,负责解释命令行

③ 用户的登录shell
• 登录后默认使用的shell程序,一般为/bin/bash

• 不同的shell的内部指令、运行环境等会有所区别

④ shell脚本的概念
• 将要执行的命令按顺序保存到一个文本文件

• 给该文件可执行权限

• 可结合各种shell控制语句以完成更复杂的操作

⑤ shell脚本应用场景

• 重复性操作

• 交互性任务

• 批量事务处理

• 服务运行状态监控

• 定时任务执行

二.shell编程规范
① 编写脚本代码
• 使用vim 文本编辑器

• 每行一条Linux命令,按执行顺序依次编写

② shell脚本的构成
1.脚本申明(解释器) : 若第一行为“#!/bin/bash", 表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。还有其它类型的解释器,比如# ! /usr/bin/python、#! /usr/bin/ expect

2.注释信息: 以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行

3.可执行语句: 比如echo命令,用于输出" "之间的字符串

三.重定向与管道操作

① 管道操作

将管道符号“|”左侧的命令输出的结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道

四.shell变量的作用、类型

① 变量的作用
• 用来存放系统和用户需要使用的特定参数(值)

变量名:使用固定的名称,由系统预设或用户定义

变量值:能够根据用户设置、系统环境的变化而变化

② 变量的类型
• 自定义变量:由用户自己定义、修改和使用

• 特殊变量:环境变量、只读变量、位置变量、预定义变量

环境变量: 由系统维护,用于设置工作环境

位置变量: 通过命令行给脚本程序传递参数

预定义变量: Bash中内置的一类变量,不能直接修改

▷ 自定义变量
定义一个新的变量

变量名以字母或下划线开头,区分大小写,建议全大写

变量名=变量值

查看变量的值

echo $变量名

赋值时使用引导

• 双引号:允许通过$符号引用其他变量值

• 单引号:禁止引用其他变量值,$视为普通字符

• 反撇号:命令替换,提取命令执行后的输出结果

总结
• Shell的作用与 应用场景
• Shell脚本的编写规范与执行方法:
• 重定向与管道的作用与使用方法
• 自定义变量赋值时单引号、双引号、反撇号的使用方法
• 数值变量的常用运算符: +、-、 \ *、 /、 %
• 环境变量、 只读变量、位置变量、预定义变量的用途

shell脚本编写规范和相关变量类型的更多相关文章

  1. 【Shell Basic】Shell脚本编写规范

    shell脚本需要有较高的实用性.可维护.可阅读.方便他人阅读,因而需要建立一定的规范来操作 dream361@master:~$ cat test2.sh #!/bin/bash 所使用的bash程 ...

  2. Shell脚本编写规范

    shell脚本需要有较高的实用性.可维护.可阅读.方便他人阅读,因而需要建立一定的规范来操作 dream361@master:~$ cat test2.sh #!/bin/bash 所使用的bash程 ...

  3. Shell脚本开发规范

    一.前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这 ...

  4. shell脚本编写方法

    shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell  shebang ...

  5. shell脚本编写笔记

    包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...

  6. appium+python 【Mac】UI自动化测试封装框架介绍 <七>---脚本编写规范

    脚本的使用,注释非常关键,无论自己的后期查看还是别人使用,都可以通过注释很明确的知道代码所表达的意思,明确的知道如何调用方法等等.每个团队均有不同的商定形式来写脚本,因此没有明确的要求和规范来约束.如 ...

  7. Postman接口测试脚本编写规范

    Postman接口测试脚本编写规范 1.前言 2.名词解释 3.接口测试脚本规范 3.1接口测试脚本编写的规范 3.2 Postman使用规范 4.单个接口测试 5.整个流程的开发过程 1.前言 本规 ...

  8. 7. Shell 脚本编写

    一.Shell 脚本编写 1.提示用户输入一个字符串,如果是 hello,打出 yes,并每秒输出 "hello,world",否则就输出 no,实现如下: #!/bin/bash ...

  9. shell脚本实现监控shell脚本的执行流程及变量的值

    这篇文章主要介绍了shell脚本实现监控shell脚本的执行流程及变量的值本文使用shell完成对执行过程中条件语句中的变量的变化的监控和整个程序的执行流程的观察功能,需要的朋友可以参考下 很多时候, ...

随机推荐

  1. 解决1字节的UTF-8序列的字节1无效问题

    学习路上碰到了这个异常 解决方法如下: 1.手动将< ? xml version="1.0" encoding="UTF-8"?>中的UTF-8更改 ...

  2. X-Deep Learning功能模块

    X-Deep Learning功能模块 特征体系 样本 特征 网络 数据准备 样本格式 使用DataReader读取数据 自定义python reader 定义模型 稀疏部分 稠密部分 优化器 训练模 ...

  3. SystemML大规模机器学习,优化算子融合方案的研究

    SystemML大规模机器学习,优化算子融合方案的研究 摘要 许多大规模机器学习(ML)系统允许通过线性代数程序指定定制的ML算法,然后自动生成有效的执行计划.在这种情况下,优化的机会融合基本算子的熔 ...

  4. Turing渲染着色器网格技术分析

    Turing渲染着色器网格技术分析 图灵体系结构通过使用 网格着色器 引入了一种新的可编程几何着色管道.新的着色器将计算编程模型引入到图形管道中,因为协同使用线程在芯片上直接生成紧凑网格( meshl ...

  5. NVIDIA安培架构

    NVIDIA安培架构 NVIDIA Ampere Architecture In-Depth 在2020年英伟达GTC主题演讲中,英伟达创始人兼首席执行官黄仁勋介绍了基于新英伟达安培GPU架构的新英伟 ...

  6. 嵌入式Linux设备驱动程序:发现硬件配置

    嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...

  7. kali2020.4中安装nessus 8.14.0

    1.下载软件包 官网下载地址:https://www.tenable.com/downloads/nessus 2.安装nessus dpkg -i /root/Nessus-8.14.0-debia ...

  8. 四、缓存DNS

    作用:缓存解析结果,提高解析速度 搭建方式: 1.全局转发,所有的DNS解析请求全部转发给公网DNS 2.根域迭代,所有的DNS解析请求全部发给根域DNS服务器 真机上实现缓存DNS服务器 1.搭建Y ...

  9. Java算法面试题(史上最强、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  10. 高吞吐、低延迟 Java 应用的 GC 优化实践

    本篇原文作者是 LinkedIn 的 Swapnil Ghike,这篇文章讲述了 LinkedIn 的 Feed 产品的 GC 优化过程,虽然文章写作于 April 8, 2014,但其中的很多内容和 ...