找到变量的最高值

时间:2017-03-27 14:20:25

标签: bash awk

所以我试图找到变量的最高值。例如o有这个:

var1=14
var2=15
var3=16

我想找到最大的值var 3并将其保存在某个地方。有没有办法做到这一点?

这样的事情:

tmp=`sort -n $var1 $var2 $var3  ` (this is an example)

4 个答案:

答案 0 :(得分:3)

你需要把这些数字放到一个数组中,从那里只是:

a=(14 15 16) # Example array

IFS=$'\n'
echo "${a[*]}" | sort -nr | head -n1

答案 1 :(得分:2)

这将通过变量名称

找到最大值
#!/bin/bash

maxvarname() {
    for i; do
        echo "${!i} $i"
    done | sort -nr | sed -n '1s/.* \(.*\)/\1/p'
}

#MAIN

#the variables
var1=14
var2=15
var3=16

vname=$(maxvarname var1 var2 var3) #note, arguments are the NAMES (not values e.g. $var1) - without $
echo "Max value is in the variable named: '$vname' and its value is: ${!vname}"

打印:

Max value is in the variable named: 'var3' and its value is: 16

答案 2 :(得分:1)

max=$(echo $var{1,2,3} | tr ' ' '\n' | sort -nr | head -1)

答案 3 :(得分:1)

如果要查找变量的最大值,请检查以下解决方案 -

$ cat f
var4=18
var1=14
var2=15
var3=16
$ max=$(sort -t'=' -nrk2 f|head -1)
$ echo $max
var4=18