使用动态变量进行动态数据比较(r2笔记25天)

现在有一个需求,输入一串数,输入的数个数还不固定,需要得到最小的那个数和对应的下标
如果说传入的数的个数固定,直接用for循环来得到最值 其实也不难。使用编程语言java,c等都可以实现。

使用动态变量可以很方便的初始化多个变量,对传入的数进行统计和比较。
动态变量的初始化有如下几种形式:

param_no=$#
#初始化环境变量,如果传入5个数,则会初始化5个变量。
for i in {1..$param_no}
do
export par${i}_=`eval echo \\${${i}}`
done

min_sum=$par1_
min_par=par1_

for i in {2..$param_no};
do
j=`expr $i - 1`
tmp_cur_par=par${i}_
#得到动态的环境变量,对动态变量的值和其他变量进行匹配。
tmp_cur_sum=`eval echo   \\${${tmp_cur_par}}`
if [ $min_sum -le $tmp_cur_sum  ]
then
 min_sum=$min_sum 
 min_par=$min_par
else 
 min_sum=$tmp_cur_sum 
 min_par=$tmp_cur_par
fi
done

echo  $min_par

简单测试如下:
>$ ksh min.sh 8 9 2 4 5
2 par3_sum

小数也是可以支持的
>$ ksh min.sh 88 99.5 1.1 10 55
1.1 par3_sum

9个数进行比较
$ ksh min.sh 4 5 6 3 2 9 2 1 2
1 par8_sum

2个数进行比较
$ ksh min.sh 2 5
2 par1_sum

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Go 语言函数

函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉...

2878
来自专栏Golang语言社区

Go语言的复合数据类型

Go语言的复合数据类型是基础数据类型的组合,主要包括四个数组,切片(slice),map和结构体。 数组和结构体的大小是固定大小的,数组的元素类型是固定的,结...

2575
来自专栏PHP技术

PHP5常用函数

PHP已经更新到很多个版本,最近用的比较多的要数PHP5。下面我们为大家总结了PHP5常用函数,以便大家将来实际编写代码中查看。 pathinfo返回文件路径的...

3163
来自专栏Java技术分享

XMLDTD语法详解

本文详细介绍DTD,包括其对元素的定义,属性的定义,以及实体的定义。

1829
来自专栏听雨堂

分组合计且排序和显示名称

        分组合计的一个问题是,合计中最大的问题是:只能显示groupby的字段,不能显示其它的字段。有时还需要排序,就很麻烦。这里有一个实现。 SELE...

1659
来自专栏Golang语言社区

【Go 语言社区】Go 语言函数--转

Go 语言函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务...

3258
来自专栏水击三千

JavaScript函数

JavaScript中通过function来声明函数,后面是函数名、参数、函数体。 function sum(a,b){ return a+b; } var r...

2109
来自专栏软件开发 -- 分享 互助 成长

java中String类学习

java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度。 (3)charAT:字...

1787
来自专栏GreenLeaves

Jquery filter()方法简介

利用filter函数可以从wrapper set中过滤符合条件的dom元素。 如下图html代码,假如我们要获取类名为filter的<a>标签,用filter方...

1859
来自专栏Java帮帮-微信公众号-技术文章全总结

【数据库】MySQL进阶五、带or多条件查询

【数据库】MySQL进阶五、or多条件查询 MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询。使用OR关键字时: 条件 1) 只要符合这...

3517

扫描关注云+社区