使用动态变量进行动态数据比较(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
优质内容筛选与推荐>>
1、WINZIP及WINRAR命令!!!!!
2、使用网站processon在线作图
3、C#时间判断的循环刻度判断
4、三星(SAMSUNG)910S3L-K04 安装win7的BIOS设置
5、抽象类的子类能够new


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号