所以我试图找到变量的最高值。例如o有这个:
var1=14
var2=15
var3=16
我想找到最大的值var 3并将其保存在某个地方。有没有办法做到这一点?
这样的事情:
tmp=`sort -n $var1 $var2 $var3 ` (this is an example)
答案 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