日期:2014-05-16  浏览次数:20823 次

Linux--位置参数,参数移位,随机数,数組,函数,函数递归
位置参数:
    linux 程序中会大量用到位置参数,位置参数就形如:
    mkdir a b c d e f g
     
    在以上程序中 mkdir 它自己也是一个参数,它个参数用 $0 表示
    后面的参数用 $1 (a) $2(b) $3 (c)

    最多到 $10,如果超10,那要用 shift 进行参数移位

参数移位
    参数移位就是把后面(右边)的参数,往前(左边)移动,最前面(左边)的参数
    覆盖(删除)了,整个参数个数也会少1。

    例:
        a b c d e f g h
                 ||
             || shift
                 ||
             b c d e f g h
                 ||
             || shift
                 ||
             c d e f g h
                 ||
             || shift
                 ||
             d e f g h

位置参数的表示:
    $0             程序本身
    $1  - $10     第1个参数、第2个参数、第3个参数...第10个参数
    $#        参数个数
    $*        所有参数


例:写程序,打印输入指定个数的指定字符
   如:   xxx *  5    --打5个*,xxx 是你的程序名
          xxx # 10     --打10个#,xxx 是你的程序名



随机数:
    RANDOM

    echo $RANDOM   
     
    生成 0-32767 间的随机数,要前生其它随机数,要用间接的方法了

  例:生成 0-100 间的随机数
        echo $[$RANDOM%101]

  例:生成 50-100 间的随机数
    echo $[$RANDOM%51+50]


数組 
   具有相同的名字,不同下票变量集合,如 a[1]  a[2] ......

数組定义方法:
    方法一:把所有值用小括号括起(值间空格分形),赋給一个变量
          如: a=(1 2 3 a b c)

      使用:使用它的具体元素,如: echo ${a[0]}    echo ${a[5]}

    方法二:直接给单个下标赋值
     如:b[1]=5
         b[10]=8

下标值查看:
     echo ${b[*]}    显示所有值,但不会显示下标个数,和下标序号


    echo ${#b[*]}    看有多少个值

    命令行可以通过set 来看



例:利用随机数与数组产生随机验证码

    定义数组:a=(1 2 3 4 .... X Y Z # ^ _)
    产生随机数:n
    利用随机数作数组下标取数:  echo ${a[$n]}



函数:
        在shell程序时,经常会遇到反复使用相同或相近的代码段,那这里我们可以将这些代
    码,提取出来,构成函数。

    函数的优点在于,1、让主程序变得简短。2、方便维护。


函数定义:
    
    FUNCTION function_name() {


    }

    function_name() {


    }


函数返回值:
    1、默认以函数最后一条命令返回返回(没有显示的为函数指定返回值时)
    

    2、使用return返回值,只能返回 0-2