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