• Bash shell编程的语法知识点(1)


    Bash shell脚本编程知识点如下(初学,不全,欢迎讨论补充):

    shell简介

    脚本的简单介绍

    变量和引用

    算术运算

    交互式编程

    选择判断

    条件测试

    循环

    函数

    shell简介

    shell是一种具备特殊功能的程序,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令,并把它送入内核去执行,shell分为图形界面和命令界面(我们操作的window系统就是一种图形化shell,我们要学的bash也是she一种命令界面的shell)。

    shell与内核和用户的关系图如下:

    bash shell功能:

    提供交互式接口:

    命令行展开:~,{}

    命令别名:slias,unalias

    命令:history

    globbing:*,?,[],[^]

    快捷键

    命令补全:$PATH

    命令hash

    路径补全

    提供编程环境:面向过程,脚本编程

    程序:语句和表达式

    流程:

    顺序执行

    选择执行

    循环执行

    编程模型:面向过程,面向对象

    程序=指令+数据

    面向过程:以指令为中心组织数据。bash shell就是一种面向过程的编程

    面向对象:以数据为中心组织指令。

    程序运行模型:

         编译运行:

            源程序 --> 预处理 --> 编译 --> 汇编 --> 链接

    解释运行:bash就是解释运行的

        解释器 /bin/bash

            源程序

            

    脚本的第一行:shebang

             #!/bin/bash

             #!/usr/bin/python

             #!/usr/bin/perl

     

    脚本的简单介绍

    脚本语言的好处就是简单、易学、易用,适合处理文件和目录之类的对象,以简单的方式快速完成某些复杂的事情。它适用于系统管理、文本处理等方面完成特定功能的小程序。

    1. 书写格式;shell脚本格式如下:

      #!/bin/bash 必须顶格写,指明解释器类型。除了第一行#!指明解释器类型之外,所有的#带头的shell都会认为是注释,不予执行。

    2. 执行与检测

      -n 语法测试,测试是否有语法错误,刚学shell建议执行前使用-n测试一下,保证语法是否错误。

      -x 模拟执行,可以显示该脚本执行中的每个步骤。方便查找错误。

      带加号的是执行的步骤,不加-x不会显示上图带加号的行。

    变量和引用:

    变量是命名的地址空间,内存是编址的存储单元:

    变量用于保存有用信息,如路径名、文件名、数字等,Linux用户使用变量定制其工作环境,使系统获知用户相关的配置。变量本质上是存储的一个或多个计算机内存地址。

    变量类型:

    本地变量:只对当前shell进程有效,对当前shell之外的其他shell(包括其父、子等)无效。而且随着shell进程的消亡而无效。

    局部变量:仅对当前shell进程中的某段代码空间内有效;通常用于函数本地程序。

    环境变量:对当前shell进程及其子shell进程有效;

    位置参数变量:$1,$2 ...........

    特殊变量:$?,$0,$#,$$,$*,$@

    变量赋值与引用:

    本地变量:无需事先声明可直接使用;例如你家的东西直接拿来使用,而别人的东西你要说下才能使用一样。

    变量赋值:[set] VAR_NAME=VALUE set是可以省略的,直接变量名=变量值 赋值完成。

    变量引用:${VAR_NAME}或$VAR_NAME {} 花括号是可省略的,在变量后面跟着不是变量名的时候需要使用

    直接赋值直接使用。花括号这时候是可省略的

    " ":弱引用,其中的变量会被替换,大部分字符都看作普通字符。例外还有 $ `三个特殊字符可以使用,无需转义。

    ' ':强引用,任何字符都看作普通字符,除单引号自身。所以无法在两个单引号之间包含单引号,用转义也不行。

    · · :命令引用:键盘TAB键上面字符,引用命令的。

    强引用与弱引用的结果是不一样的

    set:显示所有本地变量。

    unset VAR_NAME:销毁一个变量。

    环境变量

    变量赋值:

    export VAR_NAME=VALUE

    declare –x VAR_NAME=VALUE

    export VAR_NAME:可以将本地变量赋值为环境变量,前提是本地变量必须存在。也不能加$符号

    declare –x VAR_NAME:同上。

    本地变量到环境变量转换。

    变量引用:${VAR_NAME}或$VARNAME 同本地变量引用。花括号也可以省略。

    注意:bash内建了许多环境变量

    HISTSIZE,HISTFILE,HISTCONTROL,PATH,HOME,SHELL

    export:显示所有环境变量;printenv,env 同样可以显示

    unset VAR_NAME:销毁环境变量

     

    只读变量:

    readonly VAR_NAME 将环境变量变为只读变量

    declare –r VAR_NAME 同上。

    位置参数变量:经常在交互式脚本使用。输入的第一位数为$1,

    变量命令法则:

    1. 不能带程序中的关键字:if,elif,fil,then,for,…
    2. 不能使用数字、字母或下划线,而且不能以数字开头;
    3. 见名知义;一看到变量就知道那个变量的意思。
  • 相关阅读:
    Linux 函数库
    Linux yum源码包安装和卸载
    Linux软件包管理 RMP包
    Linux软件包管理 RMP包管理
    Linux基本命令 vim命令(二)
    Linux基本命令 vim命令(一)
    Linux基本命令 关机命令
    【后缀表达式求解】No.3.栈-evaluate-reverse-polish-notation题解(Java版)
    对象输入输出流ObjectInputStream、ObjectOutputStream(对象的序列化与反序列化)
    手写二叉树-先序构造(泛型)-层序遍历(Java版)
  • 原文地址:https://www.cnblogs.com/cishi/p/4148150.html
Copyright © 2020-2023  润新知