使用动态变量进行动态数据比较(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 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

python: 多属性排序

902
来自专栏数据结构与算法

01:查找特定的值

01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[100...

3428
来自专栏Golang语言社区

Golang语言--中间的循环

在Go语言中只有很少的几个控制结构,它没有while或者do-while循环。 但是它有for、switch、if。而且switch接受像for那样可选的初始化...

4107
来自专栏Python小屋

《Python程序设计》判断题1-240题

1、Python是一种跨平台、开源、免费的高级动态编程语言。(对) 2、Python 3.x完全兼容Python 2.x。(错) 3、Python 3.x和Py...

1.4K7
来自专栏程序员互动联盟

【编程基础】Java初学者需要了解的10个语法细节

语法语法,语法就是语言的法则。汉语有汉语的语法,英语有英语的语法,如果不懂语法那你写出来的句子要不然就是错误,要不然就是生涩难懂。要学习和使用Java语言就要遵...

3354
来自专栏python3

python3--中一些常见的坑(机制上的问题)

重点:在循环一个列表时,最好不要进行删除的动作(一旦删除,索引会随之改变),容易错误。

621
来自专栏Laoqi's Linux运维专列

python3–函数

38011
来自专栏小古哥的博客园

读书笔记《PHP与MySQL程序设计》一

第1章 PHP概述 1.1  历史(PHP4、PHP5、PHP5.3、PHP6[未发布]) 1.2 一般语言特性(实用性、强大功能、可选择性、成本[开源]) 第...

3816
来自专栏Golang语言社区

Go语言语法汇总

最近看了看GoLang,把Go语言的语法总结了一下,做个快速参考 数据类型 ---- var varName type,var var1,var2… type,...

4208
来自专栏cs

python数据类型

python编译图 运行python文件的时候,python会通过编译器将它编译成.pyc文件。 如果没有修改python文件,每次执行程序时,就执行前面运行...

2905

扫码关注云+社区