zoukankan      html  css  js  c++  java
  • Linux shell Script初识

    shell secript:

      执行方式的差异:
      ./ sh执行都是在创建一个子程序来执行,只会继承环境变量,
      其中的变量如果export声明,子程序的子程序会继承,不会升级为环境变量

      source 的执行方式是把脚本放到父程序的环境执行,
      其中的变量如果export声明,会升级成环境变量


      test判断,[]判断是一样的,建议使用[]的判断方式
      



      默认变量($0, $1......)

        $0,$1....位置变量,代表参数
        $#:代表参数的个数
        $@:代表参数"$1""$2""$3""$4"
        $*:代表"$1c$2c$3c$4",其中c为分隔符,默认是空白




      shift:变量偏移
        每执行一次,判断的位置向右移动一个


      条件判断:
        if [ 条件判断式 ];then
          内容
        fi

        &&代表AND; ||代表or
        -a:代表and; -o代表or

        if [ 条件判断式 ];then
          内容
        elif [ 条件判断式 ];then
          内容
        fi


      利用case .... esac判断

        case $变量 in
        "第一个变量内容")
          程序段
          ;;
        "第二个变量内容")
          程序段
          ;;
        "*")
          exit 1
          ;;


        esac

      循环:

        while do done
        while [ condition ]
        do
          程序段
        done

      当condition成立时,就执行循环,不成立则停止

        until [ condition ]
        do
          程序段
        done

      当condition成立时,就立则停止,不成立,则循环

      for ... do ...done

        for var in con1 con2 con3
        do
          程序段

        done

      数值处理
        for((初始值; 限制值; 执行步骤))
        do
          程序段
        done


      乱数与阵列array
        ${RANDOM} 的取值范围[0,32767]
        #!/bin/bash
        #

        e[1]="aaa"
        e[2]="bbb"
        e[3]="ccc"

        en=3

        check=$(( ${RANDOM} * ${en} / 32767 + 1))
        echo ${e[${check}]}


      function函数:
        function fname(){
          程序段
        }

        函数也具有位置变量,$0,$1,$2



      shell script的debug
        sh:
        -n:不要执行script,仅查询语法问题
        -v:在执行前,把script内容输出到屏幕上
        -x:将使用到的script内容显示在屏幕上

  • 相关阅读:
    css中导入样式表和链接样式表有什么区别
    URL加随机数的作用
    asp.net 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
    解决浏览器的缓存Ajax取不到最新的数据的为问题
    The connection to adb is down, and a severe error has occured.
    站着办公有助减轻体重
    AndroidManifest.xml文件综合详解
    asp.net C# 全站防注入 利用Global.asax(转)
    Android Unable to resolve target 'androidX'
    Android预定义样式
  • 原文地址:https://www.cnblogs.com/djoker/p/9413212.html
Copyright © 2011-2022 走看看