14、位置パラメータ配列+ + +乱数関数

場所パラメータ:
Linuxのプログラムは、位置パラメータ、フォームの位置パラメータの多くで使用されます。
MKDIR ABCDEFG
     
上記プログラムでMKDIR自体もパラメータが$ 0と表されるパラメータであります
後者のパラメータ$ 1(a)の$ 2( B)$図3(c)
 
まで、$ 10 10の上に、その後、シフトパラメータのシフトを使用している場合
 
変位パラメータ
パラメータは、リアシフトすることであるパラメータ(右)、前方(左側)に移動すると、正面(左)のパラメータを
カバー(削除)は、パラメータの全体の数が少なくなります1。
 
例:
        ABCDEFGH
                 ||
         || シフト
                 ||
             bcdefgh
                 ||
         || シフト
                 ||
             cdefgh
                 ||
         || シフト
                 ||
             defgh
 
位置パラメータは、言いました:
$ 0          プログラム自体
$ 10 - $ 1 引数、第二引数、第三引数パラメータ... 10
$番号のパラメータの数
$ * すべてのパラメータ
 
 
例:入力を指定し、指定した数の文字を印刷するプログラムを書きます
   以下のような:XXX * 5 -ヒット5 *、xxxはあなたのプログラムの名前です。
          xxxは#10から10#を再生し、xxxはあなたのプログラムの名前です。
 
 
 
乱数:
ランダム
 
エコー$ 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-255
 
例:写个求2个数这和的函数
add() {
sum=$[$1+$2]
return $sum
}
 
read -p "输入第一个数: " x
read -p "输入第二个数: " y
 
add $x $y
echo "x+y=$?"
 
    3、在函数中使用echo
add2 () {
sum=$[$1+$2]
echo $sum
}
read -p "输入第一个数: " x
read -p "输入第二个数: " y
 
add2 $x $y
echo "x+y=`add2 $x $y`"
 
 
函数中的变量问题:
    程序中使用的变量,我们把它分为全局变量和局部变量
    全局变量
未作特别声明都是全局变量,主程序代码中定义的变量都是全局变量,全局变量的作用范围
是从它的定义处,到程序末尾
 
    局部变量
   定义的方法:local 变量名
 
局部变量的作用范围:只在定义它的函数有效,一般来讲函数中的变量都应该声明为局部变量
 
函数使用:
先定义、后使用,使用时输入函数名即可
 
 
    FUNCTION          关键字
    function_name   函数名
 
  
    例:定义一个打印函数
function my_print() {
 
           commands    
  
}
 
也可以
 
my_print() {
 
   commands
 
}
 
    例:定义一个打印指定个数*的函数
 
function my_print() {
n=1
while [ $n -le $1 ]
do
echo -n "*"
n=$[$n+1]
done
}
   
 
my_print 5
 
 
    例:定义一个打印指定个数,指定字符的函数
my_print 5 "*"
        my_print 10 "#"
 
 
函数递归
    自已调用自已
 
    要点:
1、必须有个变量终值时的处理
2、递归调用时,变量值的变化要向终值靠近
 
 
#函数递归调用,求阶乘
 
function jx() {
local n
if [ $1 -eq 1 ]
then
n=1
else
n=$[$1*`jx $[$1-1]`]
fi
echo $n
}
 
s=`jx 5`
echo "5的阶乘是: $s"
 
利用函数创建菜单
 
 
 
 
 
 
    
 
 
 
 
 

おすすめ

転載: www.cnblogs.com/steven9898/p/11331210.html