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 有很多种,国内通常使用 ...
随机推荐
- NetCore 中间件获取请求报文和返回报文
using System; using System.IO; namespace WebApi.Restful.Middlewares { public class MemoryWrappedHttp ...
- Spring源码阅读-ApplicationContext体系结构分析
目录 继承层次图概览 ConfigurableApplicationContext分析 AbstractApplicationContext GenericApplicationContext Gen ...
- [开源]OSharpNS 步步为营系列 - 3. 添加业务服务层
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
- CDQZ集训DAY2 日记
依然很爆炸. T1上来有50分暴力分,打完后注意到了后50分的随机数据,开始想怎么去对付他.然后就开始思考随机数据意味着什么.想了想,想打一个扫描线或者分治.决策了一下还是打了一个扫描线+链表.然而只 ...
- android_onSaveInstanceState_onRestoreInstanceState研究
当一个activity的状态是一个容易被系统宰掉时,比如pause或者stop状态,此时这个活动不一定已经被销毁了,那么这个activity的onSaveInstanceState方法会被系统调用(值 ...
- 【拓扑排序】排队-C++
描述 今天,学校老师让同学们排成一队,准备带大家出去玩,一共有 n 名同学,排队的时候同学们向老师提了 m 条要求,每一条要求是说同学 x 一定要排在同学 y 之前,老师现在想找到一种排队方式可以满足 ...
- [Windows无法连接到 System Event Notification Service服务]解决方案
我之前使用Windows的过程的有出现过以下问题,之前因为比较急就匆忙解决了没来得及把解决方法写下来. 正好今天有个朋友电脑也出现此问题过来找我寻求解决方法,便把解决方法写了下来. 电脑出现的问题,如 ...
- python,看看有没有你需要的列表元祖和range知识!
列表--list 列表:列表是python的基础数据类型之一,存储多种数据类型 可变 支持索引 可切片 方便取值 li = ['alex',123,Ture,(1,2,3,'wusir'),[1,2, ...
- ThreadLocal的使用场景:Web容器、Spring容器、日志打印
一.对于HTTP事务的理解 一次HTTP请求,就是一个事务.事务者,必须完整的执行其中的所有步骤,不能中断. 二.HTTP事务的隔离 每次HTTP请求对应一个HTTP事务,而每个请求都对应一个线程,线 ...
- [leetcode] 63. Unique Paths II (medium)
原题 思路: 用到dp的思想,到row,col点路径数量 : path[row][col]=path[row][col-1]+path[row-1][col]; 遍历row*col,如果map[row ...