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 有很多种,国内通常使用 ...
随机推荐
- @ApiImplicitParam注解
@Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置&q ...
- set.contains()分析
先看一段代码 Set s = new HashSet(); List<String> list = new ArrayList<>(); list.add("a&qu ...
- getpass.getpass 无法在pycharm上run显示的 workaround
getpass.getpass 只能通过交互式终端运行.py文件来密文输入密码,想在pycharm里运行,好不容易找到一个小窍门,记录如下 from easygui import passwordbo ...
- Sending Operations to Multiple Threads_翻译
The speed and efficiency of a long-running, data-intensive operation often improves when you split i ...
- HashMap中的hash算法中的几个疑问
HashMap中哈希算法的关键代码 //重新计算哈希值 static final int hash(Object key) { int h; return (key == null) ? 0 : (h ...
- Windows Presentation Foundation (WPF) 项目中不支持xxx的解决
一般Windows Presentation Foundation (WPF) 项目中不支持xxx都是由于没引用相应的程序集导致,比如Windows Presentation Foundation ( ...
- 手写 Spring
手写 Spring 不多说,简历装 X 必备.不过练好还是需要求一定的思维能力. 一.整体思路 思路要熟练背下来 1)配置阶段 配置 web.xml: XDispatchServlet 设定 init ...
- 个人永久性免费-Excel催化剂功能第31波-数量金额分组凑数功能,财务表哥表姐最爱
在财务工作过程中,很大时候需要使用到凑数的需求,花了两三天时间认真研究了一下,本人水平也只能做代码搬运工,在用户体验上作了一下完善.完成了Excel版的凑数功能. 文章出处说明 原文在简书上发表,再同 ...
- 知识图谱学习与实践(4)——通过例句介绍Sparql的使用
通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...
- Python生成器和构造器
什么是生成器? 参考link:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00 ...