编程原理

1.编程介绍:

    早期编程:驱动   硬件默认时不能使用的;

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

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

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

     编程语言的分类:

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

                     解释型 —— 逐行翻译、逐行执行 shell python Java

                     程序 = 指令 + 数据

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

                     面向过程 ---侧重于指令

  编程语言的执行方式:(一行一行)
                  1.顺序执行                
                  2.循环执行-- *for while untile
                  3.选择执行--分支        
         添加用户
  if id $* &>/dev/null;then
         echo "这个用户已经存在"
  else
          for i in $*;do
               userass $i
               echo"123456"|passwd --stdin "$i" &> /sev/null
               echo "用户 $i 添加成功“
          done
          exit 0
  fi
2.shell脚本语言介绍

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

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

         shell脚本包括:1.*命令*(非常重要)

         tar -cvzf /tmp/etc.bak /etc/

       

     判断文件是否存在,如果存在覆盖

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

                                  3.逻辑关系

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

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

        #!/usr/bin/python  --python解释器

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

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

         /etc/passwd --指定了用户默认支持的shell程序(/bin/nologin)

         shell 的执行:

                           1. bash命令来执行脚本

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

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

                            2.授权chmod u +x filename.sh

                                                 使用全路径执行脚本即可


3.变量
          环境变量

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

          本地变量 local 在函数中使用

          变量类型:

                          数值型:

                                       1.整型

                                       2.浮点型

                                       3.布尔型 (0 真 1 假)(True False)

                          字符串:

                                       1.普通字符集字符串

                                       2.数组

                          编程语言的分类:

                                        强类型语言 -- 数值必须被定义,才能进行处理或运算

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

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

           传参

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

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

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

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

                      $@ -- 表示所以传参,将所有的传参以列表的形式进行输出

                    【工作中要对所以的传参进行操作的时候,就要考虑$*和$@】

        定义变量格式:

                     NAME=VALUE  

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

                     declare -i a=10 int() str()

                     declare -i  整数

                     declare -a 数组

        变量命令:

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

                     2.驼峰命名方式

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

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

          使用格式:

                       1.test[option] file

                       2.[条件语句]

           常见的test选项:

                         1.比较选项:

                                     -eq 等于

                                     -ne  不等于

                                     -gt   大于

                                     -ge  大于等于

                                      -lt  小于

                                      -le  小于等于

                          2.判断选项

                                      -f  判断是否为普通文件

                                      -d 判断是否为目录文件

                                      -L 判断是否为连接文件

                                       -r -w -x 判断文件是否具有读 写 执行 权限

                           3.关联选项

                                    -o  或

                                     -a  与

                                     !  非

     字符串判断:
                 = 判断两边的字符串是否相等
                != 不等于
                -z判断字符串是否存在、
                -n与-z相反 存在为假 不存在为真

5.逻辑运算

    与   && :两边的命令,都为真,结果才是真
    或    ||   :两边的命令,一边为真,就是真,同时为真,才是假
    非!=
    这个逻辑运算符,前后对接的都是单独存在的命令;

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

6.算术运算
     *let 1+1
           let a=1+1
           echo $a
     expr 1*1
           expr 1*10
     *$[$1+10]
           a=$[2+3]
           echo $a
     $(($1/$2))
           a=$((3/2))
           echo $a

                   

                          

原文地址:https://www.cnblogs.com/azuressy/p/11344834.html