一、编程原理:

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. @ApiImplicitParam注解

    @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置&q ...

  2. set.contains()分析

    先看一段代码 Set s = new HashSet(); List<String> list = new ArrayList<>(); list.add("a&qu ...

  3. getpass.getpass 无法在pycharm上run显示的 workaround

    getpass.getpass 只能通过交互式终端运行.py文件来密文输入密码,想在pycharm里运行,好不容易找到一个小窍门,记录如下 from easygui import passwordbo ...

  4. Sending Operations to Multiple Threads_翻译

    The speed and efficiency of a long-running, data-intensive operation often improves when you split i ...

  5. HashMap中的hash算法中的几个疑问

    HashMap中哈希算法的关键代码 //重新计算哈希值 static final int hash(Object key) { int h; return (key == null) ? 0 : (h ...

  6. Windows Presentation Foundation (WPF) 项目中不支持xxx的解决

    一般Windows Presentation Foundation (WPF) 项目中不支持xxx都是由于没引用相应的程序集导致,比如Windows Presentation Foundation ( ...

  7. 手写 Spring

    手写 Spring 不多说,简历装 X 必备.不过练好还是需要求一定的思维能力. 一.整体思路 思路要熟练背下来 1)配置阶段 配置 web.xml: XDispatchServlet 设定 init ...

  8. 个人永久性免费-Excel催化剂功能第31波-数量金额分组凑数功能,财务表哥表姐最爱

    在财务工作过程中,很大时候需要使用到凑数的需求,花了两三天时间认真研究了一下,本人水平也只能做代码搬运工,在用户体验上作了一下完善.完成了Excel版的凑数功能. 文章出处说明 原文在简书上发表,再同 ...

  9. 知识图谱学习与实践(4)——通过例句介绍Sparql的使用

    通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...

  10. Python生成器和构造器

    什么是生成器? 参考link:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00 ...