Linux--shell编程原理--03
一、编程原理:
1、编程介绍:
计算机只能识别二进制指令
程序=指令+数据
根据服务的重心不同,我们分为面向过程编程,面向对象编程;
a) 面向过程:侧重于指令的编程语言
b) 面向对象:侧重于数据的编程语言
2、编程语言的分类:
高级语言、超高级语言需要翻译成计算机可读的语言(二级制指令)
a) 解释型:逐行翻译,逐行执行(解释一行、执行一行)shell、python
b) 编译型:一次编译,全部执行 c、c++、c#
3、编程语言的执行方式:
a) 顺序执行 : 一行一行的执行
b) 循环执行 : for、while、until
c) 选择执行(分支): if、case
二、shell脚本语言介绍:
1、优点:
调用os(操作系统)的命令行,来实现所有功能;
2、缺点:
没有库调用(区分python)
3、shell脚本包括
a) 命令**很重要**
b) 变量(全局变量、局部变量、本地变量、传参)
c) 逻辑关系
4、shell的第一句话: #!/bin/bash --- 定义脚本解释器
/etc/shells – 查看当前系统支持的shell程序
echo $shell – 查看当前会话的shell程序
/etc/passwd – 制定了用户默认支持的shell程序(/sbin/nologin)
5、shell的执行:
a) bash命令来执行脚本:
-n 查看shell脚本的逻辑错误(注意单词的错误检查不出来)
-x 逐行显示执行的脚本程序(方便排错)
b) 授权: chmod u+x filename.sh 使用全路径执行脚本即可
三、变量:一段被命名的内存空间
1、环境变量---关于命令历史的变量:path是环境变量的一种
---环境变量查看:env
---查看更详细的环境变量:set
2、局部变量 declare命令 ---定义变量类型
3、本地变量 local 在函数中使用
4、变量类型:
a) 数值型:
整型 int
浮点型 float
布尔型 boolean
b) 字符串:
普通字符及字符串
数组
5、编程语言的分类:
强类型语言: --- 数值必须被定义变量类型,才能进行处理或运算
弱类型语言: --- 编程语言可以自动识别变量类型
【*多态*】一种数值具有多个属性,而最后使用的属性取决于和他进行运算的数据
6、传参:
$? :代表上一条命令的执行状态 0表示正确 1~255表示错误
$1、$2 … ${10}:执行脚本命令后面传入脚本的数据,以空格为分隔符
$# :统计传参数量 ${$#}
$* :表示所有的传参,以字符串的形式进行输出
$@ :表示所有的传参,将所有的传参以列表的形式进行输出
7、定义变量的格式:
name=value
通过declare定义变量类型
declare -i a=10 定义变量a为整型,value为10
declare -a b 定义数组
8、变量命名:
a) 下划线的方式指定变量名称
b) 使用驼峰命名方式
四、test文件测试、条件判断
在脚本中,我们需要进行语句分支;就是做判断;
判断就是使用test命令来实现
1、使用格式:
a) test [option] file
b) [条件语句]
2、常见的test选项:
a) 数值比较选项:
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
b) 判断选项:
-e 判读文件是否存在
-f 判断是否为普通文件
-d 判断是否为目录文件
-l 判断是否为链接文件
-r -w -x 判断是否具有 读 写 执行
c) 关联选项:
-o 或
-a 与
! 非
d) 字符串判断:
= 判断两边的字符串是否相等
!= 不等于
-z 判断字符串是否存在,存在为真,不存在为假
-n 和-z相反 存在为假,不存在为真
五、逻辑运算
与 && 两边的命令,都为真,结果才是真
或 || 两边的命令,一边为真,就是真,同时为假,才是假
非 !=
这个逻辑运算符,前后对接的都是单独存在的命令;
例子: [ $? -eq 0] && exit 0 || exit 1
六、算术运算
1、let 1+1 let a=1+1 echo $a 2、expr 1*1 expr 1 * 10 3、$[$1+10] a=$[2+3] echo $a 4、$(($1/$2)) a=$((3/2)) echo $a
上一篇: 腾讯云:从云计算三大核心价值出发
推荐阅读
-
linux100day(day5)--编程原理和shell脚本
-
编程必备基础知识|计算机组成原理篇(08):存储器
-
使用Java实现数据库编程—03 第三章 高级查询(一)
-
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
-
编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
-
Linux--shell编程原理--03
-
编程必备基础知识|计算机组成原理篇(10):输入输出设备
-
编程必备基础知识|计算机组成原理篇(03):计算机的体系与结构
-
Java编程之HashMap底层源码方法原理(jdk1.8)
-
js异步编程的方法和原理详解