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'是一種最佳實踐方式,可以通過該名稱爲變量輸出一個完全已知/可知的值。 –