使用动态变量进行动态数据比较(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优质内容筛选与推荐>>