一、编程原理:

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. Ajax探讨

    Ajax是一种技术方案,并不是什么新技术,Ajax请求使用XmlHttpRequest对象发送, XmlHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最 ...

  2. 无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor

    在打开php文件的时候发现iis7.5报错了 每次在切换php版本的时候不知道为什么会出现这个错误,有的时候就又不会报错直接可以正常使用,然而php版本确定已经下载好,才可能的打开这个页面,那么就是i ...

  3. v8环境搭建采坑记录

    项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8:   查看ce ...

  4. 第二章 Session会话管理

    采用网址重写的缺点: 在有些Web浏览器中,URL限制为2000个字符. 仅当有链接要插入值时,值才能转换成后面的资源.此外,要把值添加到静态页面的链接中,可不是一件容易的事情. 网址重写必须在服务器 ...

  5. 关于使用 AJax 生成Form表单,且表单提交需要验证,验证实效的解决方法

    @Ajax.ActionLink("添加", "AddUser",new AjaxOptions() {InsertionMode = InsertionMod ...

  6. 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 百分 ...

  7. 通过代数,数字,欧几里得平面和分形讨论JavaScript中的函数式编程

    本文是对函数式编程范式的系列文章从而拉开了与以下延续一个. 介绍 在JavaScript中,函数只是对象.因此,可以构造函数,作为参数传递,从函数返回或分配给变量.因此,JavaScript具有一流的 ...

  8. Git远程版本库

    目前为止,所有的Git操作都是在一个本地版本库中.现在是时候来体验Git分布式的特性了. 说到远程版本库,大家最为熟悉的就是GitHub了,它实际上就相当于一个远程版本库,托管着所有的本地版本库的提交 ...

  9. C语言入门9-1-分类函数

    分类函数 ASCII字符可以分为英文字母.数字.控制字符.空白字符.大小写字母以及标点符号,分类是指对字符进行属性判定,判断字符属于哪些范畴,这些属性的判定在程序中非常常见,尤其是通信协议的字符处理部 ...

  10. [剑指offer] 54. 字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...