shell编程规范与变量

  • 一、Shell脚本概述
    • 1、shell脚本的概念
    • 2、shell脚本应用场景
    • 3、shell的作用——命令翻译器,“翻译官”(`又称命令的组合`)
  • 二、用户的登录shell
  • 三、shell脚本的构成
  • 四、shell脚本的执行
  • 五、重定向
    • 1、重定向——交互式硬件设备
    • 2、重定向——重定向操作(用于自动化脚本,输出查证)
  • 六、Shell脚本变量
    • 1、变量的作用
    • 2、变量的分类
  • 七、自定义变量
    • 1、定义新变量
    • 2、查看变量的值
    • 3、赋值时使用引号
    • 4、read命令获取输入内容
    • 5、变量作用范围(export)
    • 6、整数变量的运算
  • 八、环境变量
  • 九、只读变量
  • 十、位置变量
  • 十一、预定义变量
  • 总结

一、Shell脚本概述

1、shell脚本的概念

将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种shell控制语句以完成更复杂的操作

2、shell脚本应用场景

重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行

3、shell的作用——命令翻译器,“翻译官”(又称命令的组合

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

二、用户的登录shell

三、shell脚本的构成

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

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

可执行语句:比如echo命令,用于输出“ ”之间的字符串。

四、shell脚本的执行

方法一:指定路径的命令,要求文件必须有执行(x)权限

方法二:指定shell来解释脚本,不要求文件必须有写(x)的权限

①、sh脚本路径

②、source脚本路径

五、重定向

1、重定向——交互式硬件设备

2、重定向——重定向操作(用于自动化脚本,输出查证)



六、Shell脚本变量

1、变量的作用

用来存放系统和用户需要使用的特定参数(值)

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

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

2、变量的分类

自定义变量:由用户自己定义、修改和使用

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

只读变量:用于变量值不允许被修改的情况

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

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

七、自定义变量

1、定义新变量


命名规则:以字母或下划线开头,区分大小写(建议大写)

2、查看变量的值

3、赋值时使用引号




看cpu命令free -m

free -m | grep “Men:”

4、read命令获取输入内容

①、方法一:

read -p “提示信息” 变量名(-s不显示输入信息,多用于密码输入)

echo $“变量名”


②、方法二:

echo -n “提示信息”

read 变量名

echo $变量名

5、变量作用范围(export)

默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时,局部变量将无法再使用。

可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。

格式1:export 变量名

格式2:export 变量名=变量值

可以使用 pstree 命令查看Shell环境,输入 bash 命令进入子Shell环境,按Ctrl+D组合键或输入 exit 命令退出子Shell环境。

6、整数变量的运算

1.格式:expr 变量1 运算符 变量2 (运算符 变量3)

2.运算符: + 加法、- 减法、、* 乘法、/ 除法、% 取余


常用的运算表达式:

i=$(expr 10 * 3)

i=$((10 * 3))

i=$[10 * 3]

let i=10*3

i++ 相当于 i=[[[i+1]

i-- 相当于 i=[[[i-1]

i+=2 相当于 i=[[[i+2]

bash不支持浮点运算,如果需要进行浮点运算,需要借助bc, awk 处理,awk可保留小数点后6位

八、环境变量

使用 env 命令可以查看到当前工作环境下的环境变量

变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径。

九、只读变量

用于变量值不允许被修改的情况

十、位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}。

十一、预定义变量

∗、*、∗、@:表示命令或脚本要处理的参数。

$*:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4"。

$@:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立 的,代表"$1" “$2” “$3” “$4”。

$0:表示当前执行的脚本或命令的名称。

$#:表示命令或脚本要处理的参数的个数。

$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。


总结

shell重要的一点就是语法错误,shell脚本是一行一行执行,注意一个符号或者一个空格错了都执行不了

这里的我认为的重点是脚本里的符号,’ " ` 这三个的意思。还有几个变量。很多小白刚开始做的时候都会遇到输入命令不启动。别着急,耐心点。

【拔刀吧少年】之shell编程规范与变量相关推荐

  1. shell脚本详解(一)——Shell编程规范与变量

    详解Shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官" 二.用户的登录shell ...

  2. Shell脚本——Shell编程规范及变量

    Shell编程规范及变量 一.Shell脚本概述 1.1.1 Shell基本概念 1.1.2 Shell脚本应用场景 1.1.3 Shell作用--翻译官 二.shell编程规范 2.1 用户登录sh ...

  3. Shell脚本:shell编程规范与变量

    shell编程规范与变量 一.概述:解释器,编译器,翻译官. 1.定义: 2.作用: 3.应用场景: 4.登录: 5.shell脚本基本格式: 二.重定向与管道操作: 1.交互式硬件设备: 2.重定向 ...

  4. Shell 编程规范与变量

    文章目录 1 Shell 1.1 Shell 作用 2 Shell 脚本概述 2.1 Shell 脚本应用场景 3 编写 Shell 脚本 3.1 脚本的构成 3.2 编写脚本代码 3.2.1 注释有 ...

  5. Shell编程规范与变量(shell编程规范,执行脚本文件的四种方式,管道符号与重定向,shell变量的作用于类型)

    文章目录 Shell脚本概述 Shell脚本的概念 Shell的作用 Shell编程规范 重定向与管道 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell Script ,She ...

  6. Shell编程规范与Shell中的管道符号(|)和重定向符号<、>、>>

    Shell脚本编程规范 Shell脚本的应用场景 Shell编程规范 1.Shell解释器程序的种类 2.编写一个简单的Shell脚本 3.执行脚本文件的方式 4.Shell环境中的:管道(|)与重定 ...

  7. Linux学习总结(79)—— Shell 编程规范

    前言 Shell 编程与其它的语言一样也有其约定的一些大家共同认可的约束和规范.编码规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80% 的花费在于维护 几乎没有任何一个软件,在 ...

  8. Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制

    目录 一.Shell 编程入门 1. 认识 Shell 2. Shell 脚本的创建与执行 二.Shell 变量 1. 系统变量和自定义变量 2. 变量的基本规则 3. 设置环境变量 4. 位置参数变 ...

  9. shell编程之特殊变量

    一.特殊变量:$n 1.基本语法 $n(功能描述:n为数字,$0代表该脚本名称, $1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}) 2.案例实操 [root@ ...

最新文章

  1. MyBatis下MySqL用户口令不能为空
  2. 10张让你大脑崩溃的图,敢接受挑战吗?
  3. [mybatis]Configuration XML_properties
  4. Java SecurityManager checkListen()方法与示例
  5. 1.vue简介以及模板语法---vue教程
  6. 襄阳汽车职业学院计算机专业,襄阳汽车职业技术学院毕业设计模板.docx
  7. linux php 中文文件名乱码,linux文件名乱码
  8. Jdbc普通查询、流式查询、游标查询
  9. 【数据结构的魅力】008.图
  10. RequestInfo关键点解析
  11. RGB图像转到HSI图像
  12. 那些年我们一起用过的Hybrid App
  13. 华东理工大学计算机考研资料汇总
  14. Spring Boot优点和缺点
  15. android连接程序,从Android应用程序连接到本地后端
  16. hlsl函数 ddx ddy
  17. 电脑重装系统word从第二页开始有页眉页脚如何设置
  18. 生信自学笔记(五)计分矩阵的实例
  19. 计算机等级考试培训课件,计算机等级考试培训ppt课件
  20. 个人博客开源系统XBlog介绍和部署

热门文章

  1. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...
  2. R语言多层桑基图_桑基图的绘制核心微生物组分类学及丰度展示
  3. filezilla 设置服务器_java项目部署到linux服务器,微信小程序后台springboot项目部署到腾讯云服务器(图文详解)...
  4. java高并发(十五)J.U.C之FutureTask
  5. 拿下了一个美女图片网站!
  6. 再见xx网盘!4 行命令搭建属于你的私人网盘!
  7. 省吃俭用 ,究竟祸害了多少人 ?
  8. 你们需要的数据集,都给准备好了!
  9. 任务管理平台_基于notion详谈任务规划的思路(二):搭建任务管理平台
  10. 类方法的实例python_Python Class 的实例方法/类方法/静态方法