Linux shell Script初识

Posted 愤怒的绿萝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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内容显示在屏幕上

以上是关于Linux shell Script初识的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习之Shell脚本初识

Linux - 通过操作文件锁来实现shell script进程单实例

初识linux

Linux基础入门初识Shell

[Linux Shell学习系列二]初识Linux Shell

[Linux Shell学习系列二]初识Linux Shell