- 编程介绍
驱动:硬件设备默认是不能使用的(cpu控制硬件)提供不同厂家啊硬件设备之间需要进行指令沟通,我们需要驱动程序来进行”翻译”;
更趋近于硬件开发的工程师,要学习汇编语言;而汇编语言被厂家所限制
计算机只能识别二进制指令
程序 = 指令 + 数据
根据服务重心的不同,我们分为面向过程编程和面向对象编程
面向过程>>>>>>侧重于指令
面向对象>>>>>>侧重于数据
根据程序翻译成二进制指令的方式不同,分为低级语言高级语言
低级语言:汇编语言
高级语言:高级语言和超高级语言需要‘翻译’成计算机可读的语言
解释型—逐行翻译,逐行执行:shell python
Bash -x filrname.sh
编译型:--一次编译,全部执行C语言,C++,C#
编程语言的执行方式:[一行一行]
1,顺序执行
2.循环执行—for while unitl(和while相反)
3.选择执行—分支if case*
- Shell脚本语言介绍
Shell语句是面向过程的,侧重于指令集;
Shell语句的基本结构组成:
- 命令
- 数据----变量(全局变量,局部变量,本地变量,传参)
- 逻辑关系
Shell的第一句话!!!!!(必须写)
#!/bin/bash ---定义脚本解释器(普遍认为#为注释行,这里特殊)shebang
#!/usr/bin/python
/etc/shells --查看当前系统支持的shell程序
--echo $SHELL --查看当前会话的shell程序
/etc/passwd --制定了用户默认支持的shell程序(/sbin/nologin)
Shell的执行:
--bash命令来执行脚本
-n 查看shell脚本的逻辑错误(注意,单词写错可不管)
-x 逐行显示执行的脚本程序(方便排错)
--授权shmod +x filename.sh
使用全路径执行脚本,即可
Shell没有内嵌函数,没有函数库的调用
优点:调用os操作系统的命令行,来实现所有功能;
缺点:没有库调用(区分python)
- 变量
环境变量
局部变量 declare 命令 -- 定义变量类型
本地变量 local 在函数中使用
变量类型:
数值型:整形(int),浮点型(float),布尔值(True,False)
字符串:普通字符及字符串,数组
编程语言的分类:
强类型语言—定义必须被定义,才能进行处理或者运算
弱类型语言—编程语言可以自动识别变量类型
【多态 ---一个数据具有多个属性,而最后使用的属性取决于和他进行运算的数据】
传参:
$? --上一条命令的执行状态0正确1-255错误
$1 -----
$2 ----命令后面传入脚本的数据,以空格为分隔符
${10} -----
$# -----统计传参数量${$#}
$* ----表示所有的传参,所有的传参以字符串形式进行输出
$@ ---表示所有的传参,所有传参以列表形式进行输出
【工作中要对所有传参进行操作的时候,就要考虑$*和$@】
定义变量格式:
NAME=VALUE
我们通过命令declare定义变量类型
--declare -i(整数) a = 10 int() str()
--declare -a (数组)
变量命名:
- 下划线的方式指定变量名称
- 驼峰命名方式
- Test文件测试,条件判断
在脚本中我们需要进行语句分支;说白了就要做判断,而判断就是使用test命令来实现的;
使用格式:
1.test [option] file
2.[ 条件语句 ]
常见的test选项:
--比较选项:-eq等于
-ne不等于
-gt大于
-ge大于等于
-lt小于
-le小于等于
--判断选项:-f判断是否为普通文件
-d判断是否为目录文件
-L判断是否为连接文件
-r -w -x 判断文件是否具有读写执行权限
--关联选项:-o或
-a与
!非
--字符串判断:
= 判断连边的字符串是否相同
!= 不等于
-z 判断字符串是否存在
-n和-z相反,存在为假,不存在为真
- 逻辑运算
与 &&:俩边的命令,都为真,结果才是真
或 || : 俩边的命令,一边为真,就是真,同时为假才是假
非 !=
这个逻辑运算符,前后对接的都是单独存在的命令;
- 算术运算
*let 1+1
--expr 1*1
*$[$1+10]
$(($1))