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