shell_day03

编程原理

1.编程介绍

驱动:

  1、硬件默认是不能使用的;

  2、不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”;

  3、更趋近于硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家所限制;c c++的底层就是汇编语言;

  现在编程基于高级语言,以及超高级语言,更好的让程序员实现编程功能

编程语言的分类:

  高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)

  解释型—逐行翻译,逐行执行 shell python java

     bash -x filename.sh 逐行执行并输出

  编译型—一次编译,全部执行 c语言 c++ c# java

  面向对象—侧重于数据的编程语言

  面向过程—侧重于指令的编程语言

编程语言的执行方式:

  【一行一行】

  1、顺序执行

  2、循环执行—*for(遍历) while(循环条件) until(和while相反)

  3、选择执行—分支 if case*

2.shell脚本语言介绍

  优点:调用os(操作系统)的命令行,来实现所有功能;

  缺点:没有库调用(区分python)

  shell脚本包括:

    命令*(非常重要)

    变量(全局变量、局部变量、本地变量、传参)

    逻辑关系

  shell的第一句话!!!(必须写)

    #!/bin/bash –定义脚本解释器(普遍认为#为注释行,这里特殊)shebang

    #!/usr/bin/python

    /etc/shells 查看当前系统支持的shell程序

    echo $SHELL 查看当前会话的shell程序

    /etc/passwd 制定了用户默认支持的shell程序(/sbin/nologin)

shell的执行:

   1.bash命令来执行脚本

      -n 查看shell脚本的逻辑错误(注意:单词不要写错)

      -x 逐行显示执行的脚本程序(方便排错)

   2.授权chmod u+x filename.sh

      使用全路径执行脚本即可

    

      if id $* &> /dev/null;then

        echo”这个用户已经存在”

  else

     for i in $*;do

         useradd $i

      echo”123456”|passwd –stadin “$i” &>/dev/null

   done

     exit 0

  fi

3.变量

   环境变量

   局部变量 declare命令—定义变量类型

   本地变量 local在函数中使用

   变量类型

      数值型:1、整型 int

2、浮点型 float

3、布尔型 01(真假)

字符串:1、普通字符及字符串

编程语言的分类:

  强类型语言—数值必须被定义才能处理或运算

  弱类型语言—编程语言可以自动识别变量类型

  【多态:一个数据具有多个属性,而最后使用的属性取决于和他运算的数据】

  传参

      $? 上一条命令的执行状态 0正确 1-255错误

      $1 $2 … ${10}  命令后面传入脚本的数据,以空格为分隔符

      $# 统计传参数量${$#}

      $* 表示所有传参,所有的传参以字符串的形式输出

      $@ 表示所有传参,所有的参数以列表的形式输出

定义变量的格式:

      NAME=value(中间不要有空格,一个等号叫赋值,两个等号叫判断)

      我们通过命令declare定义变量类型

      declare -i 整数

      declare -a 数组

 变量命名:

      下划线的方式指定变量名称

      驼峰命名方式

4.test文件测试、条件判断

      在脚本中,我们需要进行语句分支;说白了就是做判断,判断就是使用test命令来实现

使用格式:

  1. test[option]file

  2. [ 条件语句 ]注:有两个空格

常见的test选项:

     比较选项:

    -eq等于

    -ne不等于

    -gt大于

    -ge大等

    -lt小于

    -le小等

     判断选项:

    -f判断是否为普通文件

    -d是否为目录文件

    -L是否为链接文件

    -r读 -w写 -x操作

     关联选项:-o或 -a与 !非

5.逻辑运算

     与 &&   都为真结果为真

     或 ||   两者有一真为真

     非 != 

     这个逻辑运算符,前后对接的都是单独存在的命令

   [ $? -eq 0 ] && exit 0 || exit 1

6.算术运算

     let 1+1

     expr 1*1

     $[$1+10]

     $(($1/$2))

     + - * / %

原文地址:https://www.cnblogs.com/TheNeverLemon/p/11347147.html