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