fgrep:不支持正则表达式

 

shell编程:

编译器:解释器

编程语言:机器语言,汇编语言,高级语言

 

静态语言:编译型语言

    强类型(变量)

    事先转换成可执行 格式

    c,c++,java,c#,

动态语言:解释型语言

    弱类型

    边解释边执行

    php,shell,python,perl

 

面向对象:java,python,perl,c++

面向过程:shell,c,

 

变量:内存空间,命名

内存:编址的存储单元

进程:

 

变量类型:事先确定数据的存储格式和长度

        字符:

        数值:    

                  ×××

                 浮点型:

整型:8bits  256

0-255  溢出

 

shell:弱类型编程语言

强:变量在使用前,必须事先声明,甚至还需要初始;

        NULL

弱:变量用时声明,甚至不区分类型;

 

bash变量类型:

    环境变量:

    本地变量:(局部变量)

    位置变量:

    特殊变量:

 

本地变量:

        bash:

VARNAME=VALUE:作用域为整个bash进程

引用变量:$(username) 括号可以省略

 局部变量

local VARNAME=VALUE,作用域为当前代码域

 

环境变量:作用域为当前shell进程及其子进程

export VARNAME=VALUE

    "导出"

脚本在执行时会启动一个子shell进程:

    命令行中启动的脚本会继承当前shell环境变量:

    系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量

 

位置变量:

$1,$2,....

 

特殊变量:

$?:上一条命令的执行状态返回值

 

程序执行:可能有两类返回值

        程序执行结果:

        程序状态返回代码(0-255)

                0:正确执行

                1-255:错误执行  1,2,127系统预留

 

输出重定向:

>

>>

2>

2>>

&>

 

dev/null:软件设备   bit bucket  数据黑洞

撤销变量:

unset VARNAME

 

查看当前shell中的变量

set

 

查看当前shell中的环境变量:

printenv

env

export

脚本:命令的堆砌,按实际需要,结合命令流程控制机制的实现的源程序

shebang:魔数

#!/bin/bash

#注释行