zoukankan      html  css  js  c++  java
  • shell编程笔记-Day_01

    编程语言的分类:
    高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)
    解释型语言--逐行翻译,逐行执行 shell 、python
    编译语言-- 一次编译,全部执行 C、C++、JAVA
    面向对象--侧重于数据的编程语言
    面向过程--侧重于指令
    编程语言的执行方式:
    1、顺序执行:
    2、循环执行 -- for、while、until
    3、选择执行--分支 if case
    shell脚本语言介绍:
    优点:调用os的命令行,来实现所有功能
    缺点:没有库调用

    shell脚本包括:1、命令
    2、变量(全局变量、局部变量、本地变量、传参)
    3、逻辑关系

    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使用全路径执行,即可
    变量
    环境变量
    局部变量 declare 命令 -- 定义变量类型
    本地变量 local 使用在函数中

    变量类型:
    数值型:
    1、整型 int
    2、浮点型 float
    3、布尔型 0 1 (false true)
    字符串:
    1、普通字符及字符串
    2、数组
    编程语言的分类:
    强类型语言 -- 数值必须被定义,才能进行处理或运算
    弱类型语言 -- 编程语言可自动识别变量类型
    【多态】:一个数据具有多个属性,而最后使用的属性取决于和他使用的运算数据
    传参
    $? -- 上一条命令的执行状态 0 正确 1-255 错误
    $1 $2 $3... ${10} -- 命令后面转入脚本的数据,以空格为分隔符
    $# -- 统计传参数量 $($#)
    $@ -- 表示所有传参(以列表的形式输出)
    $* -- 表示所有传参(以字符串形式输出)
    定义变量格式:
    NAME=VALUE
    我们通过declare定义变量类型
    declare -i a=10 定义a为整型数值
    变量命令:
    1、下划线的方式指定变量名称
    2、驼峰命名
    test文件测试,条件判断
    在脚本语言中,我们需要进行语句分支;说白了就是做判断
    判断就是使用test命令来实现
    使用格式:
    1、test 【option】file
    2、 【条件判断】
    常见的test选项:
    比较选项:
    -eq 等于
    -ne 不等于
    -gt 大于
    -ge 大于等于
    -lt 小于
    -le 小于等于
    判断选项:
    -f 判断是否为普通文件
    -d 判断是否为目录文件
    -L 判断是否为连接文件
    -r -w -x 判断是否有读、 写、执行权限
    关联选项:
    -o 或
    -a 与
    ! 非
    逻辑运算
    与 $$ :两边的命令都为真,结果才是真
    或 || :两边的命令,一边为真,就是真;同时为假,才是假。
    非 != :
    这个逻辑运算符,前后对接的都是单独存在的命令;
    算术运算
    let 1+1
    expr 1*1
    $[]
    $()

    +、-、*、/、%、**

  • 相关阅读:
    Manage Files on HDFS via Cli/Ambari Files View——如何在ambari上查看HDFS文件
    Windows Authentication
    request.getParameterMap 无法获取到参数的原因
    sql server 分割字符串存储过程
    URI.js – 全能的URL操作库
    低延迟视频流播放方案探索
    mysql 替换函数replace()实现mysql替换指定字段中的字符串
    如何在npm上发布自己的包
    sharp 安装过慢
    Error: EACCES: permission denied, mkdir
  • 原文地址:https://www.cnblogs.com/MrGhost/p/11348266.html
Copyright © 2011-2022 走看看