0
我有一个txt文件,其中写有一个“;”的整数值,分隔器。 117; 92; 16; 20;从bash数组中查找最大值和最小值
我需要比较这些并选择最高的一个。 我的代码:
IFS=';' #Internat Field Separator
read -ra vector<$file
max=$vector[0]
min=$vector[0]
for i in ${vector[@]}
do
if [[ $i > $max ]] ; then
max=$i
fi
if [[ $i < $min ]] ; then
min=$i
fi
done
echo "Max value is $max, minimal value is $min"
break
输出是:
最大值为92,最小值为16
所以当然这是错误的。当我尝试呼应它:
echo $value (in a loop of course)
输出是
177 [0] 92 16 25
为什么第一个字母显示为INT [0]?正因为如此,我无法比较它们。我找不出任何东西....
'max = $ {vector [0]}; min = $ {vector [0]}' – anubhava
如果您在查询之前是否检查过它是否是一个实际上是您的问题的读取数组,那么您可能会问一个更具针对性的问题。 –
顺便说一下,'declare -p vector'是一种最佳实践方式,可以通过该名称为变量输出一个完全已知/可知的值。 –