14、位置参数+随机数+数组+函数

位置参数:

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-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"

利用函数创建菜单

    

原文地址:https://www.cnblogs.com/steven9898/p/11331210.html

时间: 2024-11-08 16:38:47

14、位置参数+随机数+数组+函数的相关文章

【风马一族_php】数组函数

原文来自:http://www.cnblogs.com/sows/p/6045699.html (博客园的)风马一族 侵犯版本,后果自负  2016-11-09 15:56:26 数组 函数 php--数组的尝鲜事例 array_change_key_case - 返回字符串键名全为小写或大写的数组 语法:array_change_key_case(数组名); php-->修改数组的键名(下标)的字母大小写 array_chunk - 将一个数组分割成多个 语法:array_chunk(数组名,

随机数数组输出及求和

问题描述: 随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 使用java.util中的Random类来获取随机数,存入数组后,定义一个String类的对象result,利用for循环存储要输出的数组内容到result并且求和:再利用javax.swing中的JoptionPane类创建消息框进行结果输出. 源代码: 1 import java.util.*; 2 import javax.swing.*; 3 public c

前端学PHP之数组函数

× 目录 [1]键值操作 [2]记数[3]回调函数[4]组合[5]栈和队列[6]顺序 前面的话 PHP中的数组功能非常强大,数组处理函数有着强大.灵活.高效的特点.PHP5提供了近100个操作数组的系统函数,包括排序函数.替换函数.数组计算函数等.下面将详细介绍数组函数 [注意]关于javascript数组的22种方法移步至此 键值操作 数组的每个元素都是由键值对组成,通过元素的键名来访问对应的键值.关于键值操作有array_values().array_keys().in_array().ar

PHP字符串、数组函数

字符串函数 1.explode($delimiter,$str[,$limit])  将$str以$delimiter分割符分割$str字符串,返回一个分割后的数组 $delimiter:分隔符 $str:要分割的字符串 当$limit>0时  表示分割后返回数组的元素个数 当$limit=0时  表示分割后返回数组的元素个数为1 当$limit<0时  表示将分割后返回的数组元素倒序删除$limit个数 2.htmlspecialchars_decode($str)  将特殊的 HTML 实

PHP中的数组函数

1 一:函数介绍 2 我们知道,在PHP中操作数组是非常重要的一步,没有数组,可谓就没有PHP,因此它的重要性不言而喻! 3 数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体.数组的每个实体都包含两项:键和值. 4 演示地址: http://www.ijquery.cn/phpfunction/BaseFunctionArray/DemoArray.php 5 下载地址: http://www.ijquery.cn/phpfunction/BaseFunctionArray/B

常见字符串和数组函数

常见字符串和数组函数 range <?php // array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) foreach (range(0, 12) as $number) { echo $number; } // The step parameter was introduced in 5.0.0 // array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) foreach (range(0, 100, 10

数组函数《拆分、合并、分解和接合》

本节介绍的数组处理函数能够完成一些更复杂的数组处理任务,可以把数组作为一个集合处理.例如,对两个货多个数组进行合并,计算数组间的差集或交集,从数组元素中提取一部分,以及完成数组的比较. ①函数array_slice() array_slice()函数的作用是在数组中根据条件取出一段值并返回.如果数组有字符串键,所返回的数组将保留键名.该函数可以设置4个参数,其函数的原型如下: array array_slice(array array , int offset [,int length[,boo

数组函数与数据结构《实现堆栈,实现队列》

在强类型的变成语言中,有专用的数据结构解决方案.通常都是创建一个容器,在这个容器中可以存储任意类型的数据,并且可以根据容器中存储的数据决定容器的容量,达到可以变长的容器结构,比如链表.堆栈及队列等都是数据结构中常用的形式.在PHP中,通常都是使用数组来完成其他语言使用数据结构才能完成的工作.它是弱类型语言,在同一个数组中就可以存储多种类型的数据,而且PHP中的数组没有长度限制,数组存储数据的容量还可以根据里面元素个数的增减自动调整. 一.使用数组实现堆栈 堆栈是数据结构的一种实现形式,是一种使用

php数组函数小结

<?php header('content-type:text/html;charset=utf-8;'); /*小结数组的使用*/ #1.array():定义数组eg: $arr1=array('a','b','c','d'); $arr3=array('c','d','e','f'); $arr2=array('kA1'=>'v1','kA2'=>'v2','kA3'=>'v3'); $arr4=array('kA1'=>'v1','kA2'=>'v2','kA3'