zoukankan      html  css  js  c++  java
  • Shell

    Shell是一个解释器,介于特使应用程序(用户)和操作系统之间的一个桥梁,负责命令的解释

    Shell的编程语言

    编译型语言: 程序在执行之前需要个专门的编译过程,把程序编译成为机器语言文件,
     运行时不需要重新翻译,直接使用编译的结果就行了。
     程序执行效率高,依养编译器,跨平台性差些。如C、C++、java
     
    解释型语言:
     程序不需要编译,程序在运行时由解释器翻译成机器语言,每执行一次都要翻译一次。
     因此效率比较低。比如Python/javaScript/Shell等都是解释型语言。

    Shell的解析器:

    使用场景:
     完成自动化的工作:自动化部署、自动化的分析等 ( 自动化运维 )

    /bin/sh       是bash的一个快捷方式
     /bin/bash(最多)     bash是大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能
     /sbin/nologin   表示非交互,不能登录操作系统
     /bin/dash     小巧,高效,功能相比少一些

     /bin/tcsh     具有C语言风格的一种shell,具有许多特性,但是也有一些缺陷
     /bin/csh      是csh的增强版本,完全兼容csh
     学习Shell语言的方法:
     最简单的语言、技巧,多看、多读、借鉴、思考
     特殊变量介绍和使用:

      $n 功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,
      十以上的参数,十以上的参数需要用大括号包含,如${10}

      $#:获取所有输入参数个数,常用于循环 $*:这个变量代表命令行中所有的参数,

      $*把所有的参数看成一个整体
      $@:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
      $?:表示读取命令的直接结果状态,返回的变量值为0,说明执行成功,非0则失败

    两个整数之间比较
      = 字符串比较
      -lt 小于(less than)   -le 小于等于(less equal)
      -eq 等于(equal)    -gt 大于(greater than)
      -ge 大于等于(greater equal) -ne 不等于(Not equal)

       [ $A -lt $B ] :比较变量A是否小于变量B

    按照文件权限进行判断
      -r 有读的权限(read)   -w 有写的权限(write)
      -x 有执行的权限(execute)

      [ -w test06.sh ] : 判断文件是否有可写权限

    按照文件类型进行判断
      -f 文件存在并且是一个常规的文件(file)
      -e 文件存在(existence)  -d 文件存在并是一个目录(directory)
      
      [ -f test04.sh ] :判断文件是否存在,并且是一个常规文件

     if 判断

    1基本语法

    if [ 条件判断式 ];then

      程序

    fi

    或者

    if [ 条件判断式 ]

      then

        程序

    elif [ 条件判断式 ]

    then

    程序

    else

    程序

    fi

    (1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
     (2)if后要有空格

     case 语句

    1基本语法

    case $变量名 in

      "1"

        如果变量的值等于值1,则执行程序1

        ;;

      "2"

        如果变量的值等于值2,则执行程序2

        ;;

      …省略其他分支

      *

    注意事项:

    1. case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。

    2. 双分号;;”表示命令序列结束,相当于java中的break

    3. 最后的*)”表示默认模式,相当于java中的default

    for 循环

    1,基本语法

    for (( 初始值;循环控制条件;变量变化 ))

      do

        程序

      done

    2,基本语法

    for 变量 in 1 2 3…

      do

        程序

      done

    while 循环

    1基本语法

    while [ 条件判断式 ]

      do

        程序

      done

    写一个脚本输入任意数组或则数字例如 2 3 4 5 6 7 8 9,输出最大值、最小值、平均值
    #!/bin/bash
    min=$ 1
    max=$ 1
    sum=0
    for i in "$@"
    do
    if[$min -gt $ i]
    then
    min=$i
    fi
    if[$max-It $ i]
    then
    max=$i
    fi
    sum=$[$sum+$i]
    done
    echo "最大值为" $max
    echo"最小值为" $min
    echo"平均值为" $[$sum/$#]

  • 相关阅读:
    Java中级面试题及答案整理
    深入解析Java AtomicInteger原子类型
    无需Java代码通过JHipster生成有安全验证的微服务应用
    浅谈java中"&&"和"&"的区别
    Selenium使用总结(Java版本)
    愿你走出半生,归来仍是Java Parser
    通过这些示例快速学习Java lambda语法
    PhotoShop CS6实现照片背景虚化效果
    PhotoShop CS6学习笔记
    Word 2010之简单图文混排
  • 原文地址:https://www.cnblogs.com/mrr19990327/p/12317528.html
Copyright © 2011-2022 走看看