一、编程原理:

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的更多相关文章

  1. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  2. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  3. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  4. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  5. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  6. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  7. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  8. linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行

    linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...

  9. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

  10. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

随机推荐

  1. linuxprobe培训第2节课笔记2019年7月6日

    使用VM虚拟机配置RHEL实验环境. 鉴于在笔记本上装过centos7,这章内容难度对我来说不是很大. 重置root管理员密码(RHCSA考题,第一题,做不出来无法进行下一步考试) e linux16 ...

  2. Java学习笔记之---构造方法

    Java学习笔记之---构造方法 (一)构造方法的特性 构造方法不能被对象单独调用 构造方法与类同名且没有返回值 构造方法只能在对象实例化的时候被调用 当没有指定构造方法时,系统会自动添加无参的构造方 ...

  3. zimg服务器图片数据迁移后,图片404异常的问题解决

    由于zimg特殊的图片存储结构及图片命名规则,其迁移数据应该当相当简单的,仅把对应的存储图片数据的文件夹复制即可.往往简单的东西总会有一些成本在里面,下面是我简单的迁移测试过程中遇到的一些问题,仅供参 ...

  4. WebRTC:数据传输相关协议简介

    对网络协议来说,需要做的通常就两件事情:1.建立连接,2.传输数据,WebRTC也不例外. 假设WebRTC应用的两端已经建立了连接,那么,剩下就是如何传输数据的问题了. WebRTC同时支持传输音视 ...

  5. Centos7 安装jdk,MySQL

    报名立减200元.暑假直降6888. 邀请链接:http://www.jnshu.com/login/1/20535344 邀请码:20535344 学习阿里云平台的云服务器配置Java开发环境.我现 ...

  6. 为使用mock方案测试,而重构代码的小小案例

    import com.sun.deploy.config.DefaultConfig; import javax.security.auth.login.Configuration; import j ...

  7. Thread-Per-Message设计模式

    import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; public class Te ...

  8. android异常 More than one file was found with OS independent path 'META-INF/XXX'

    android 异常总结:一个文件在jar包中出现多次. Error:Execution failed for task ':app:transformResourcesWithMergeJavaRe ...

  9. C4.5和ID3的差别

    C4.5和ID3的差别 决策树分为两大类:分类树和回归树,前者用于分类标签值,后者用于预测连续值,常用算法有ID3.C4.5.CART等. 信息熵 信息量:   信息熵: 信息增益 当计算出各个特征属 ...

  10. 深入了解数据校验:Java Bean Validation 2.0(JSR380)

    每篇一句 吾皇一日不退役,尔等都是臣子 相关阅读 [小家Java]深入了解数据校验(Bean Validation):基础类打点(ValidationProvider.ConstraintDescri ...