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
六、算术运算
let 1+1
expr 1*1
$[ $1 + 10 ]
$(($1/$2))
Linux--shell编程原理--03的更多相关文章
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行
linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...
- 一文学完Linux Shell编程,比书都好懂
一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...
- 前端学习 linux —— shell 编程
前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...
随机推荐
- Ajax探讨
Ajax是一种技术方案,并不是什么新技术,Ajax请求使用XmlHttpRequest对象发送, XmlHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最 ...
- 无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor
在打开php文件的时候发现iis7.5报错了 每次在切换php版本的时候不知道为什么会出现这个错误,有的时候就又不会报错直接可以正常使用,然而php版本确定已经下载好,才可能的打开这个页面,那么就是i ...
- v8环境搭建采坑记录
项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8: 查看ce ...
- 第二章 Session会话管理
采用网址重写的缺点: 在有些Web浏览器中,URL限制为2000个字符. 仅当有链接要插入值时,值才能转换成后面的资源.此外,要把值添加到静态页面的链接中,可不是一件容易的事情. 网址重写必须在服务器 ...
- 关于使用 AJax 生成Form表单,且表单提交需要验证,验证实效的解决方法
@Ajax.ActionLink("添加", "AddUser",new AjaxOptions() {InsertionMode = InsertionMod ...
- 74859a颜色信息
74859a十进制的RGB值为R:116, G:133, B:154. CMYK值为C:24.675, M:13.636, Y: 0.0, K: 39.608 RGB 116, 133, 154 百分 ...
- 通过代数,数字,欧几里得平面和分形讨论JavaScript中的函数式编程
本文是对函数式编程范式的系列文章从而拉开了与以下延续一个. 介绍 在JavaScript中,函数只是对象.因此,可以构造函数,作为参数传递,从函数返回或分配给变量.因此,JavaScript具有一流的 ...
- Git远程版本库
目前为止,所有的Git操作都是在一个本地版本库中.现在是时候来体验Git分布式的特性了. 说到远程版本库,大家最为熟悉的就是GitHub了,它实际上就相当于一个远程版本库,托管着所有的本地版本库的提交 ...
- C语言入门9-1-分类函数
分类函数 ASCII字符可以分为英文字母.数字.控制字符.空白字符.大小写字母以及标点符号,分类是指对字符进行属性判定,判断字符属于哪些范畴,这些属性的判定在程序中非常常见,尤其是通信协议的字符处理部 ...
- [剑指offer] 54. 字符流中第一个不重复的字符
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...