一、编程原理:

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编程中的几个特殊符号命令 &amp; 、&amp;&amp; 、 ||

    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编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  9. Linux Shell编程基础

    在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐 ...

  10. 转:Linux Shell编程入门

    http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来 ...

随机推荐

  1. [译]了解AngularJS $resource

    原文: https://learnable.com/books/angularjs-novice-to-ninja/preview/understanding-angularjs-resource-e ...

  2. js判断手机端操作系统(Andorid/IOS),并自动为链接添加相应下载地址

    <script type="text/javascript"> $(document).ready(function(e) { var u = navigator.us ...

  3. MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)

    MD5 编辑 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321( ...

  4. extend简单用法

    eg:var obj1=[{a:1,b:2},{a:2,b:3}] var obj2=[{c:3,d:2},{c:4,d:3}] var resultArray=[]; for (var i = 0; ...

  5. poj 1144 Network(割点)

    题目链接: http://poj.org/problem?id=1144 思路分析:该问题要求求出无向联通图中的割点数目,使用Tarjan算法即可求出无向联通图中的所有的割点,算法复杂度为O(|V| ...

  6. Windows Phone开发人员必看资料

    win phone开发必看资料,下载地址收藏啦!收藏后可有选择性的下载,希望大家喜欢! 完整附件下载:http://down.51cto.com/data/414417 附件预览: Windows E ...

  7. &#37325;&#35013;MacOS

    从U盘启动 开启或重新启动您的 Mac 后,立即按住 Option 键。 当您看到“启动管理器”窗口时,松开 Option 键。 选择您的启动磁盘,然后点按箭头或按下 Return 键。 Mac 的启 ...

  8. K-means算法原理

    聚类的基本思想 俗话说"物以类聚,人以群分" 聚类(Clustering)是一种无监督学习(unsupervised learning),简单地说就是把相似的对象归到同一簇中.簇内 ...

  9. sas 变量类型转换

    data b2: set b1; newbl=put(oldbl,10.); run; 根据转换后的类型灵活填写

  10. Python 数值计算库之-[Pandas](六)