thể trùng lặp:
How to sort an array in BASHCách tìm số cao nhất trong một mảng?
Tôi có con số trong mảng 10 30 44 44 69 12 11...
. Làm thế nào để hiển thị cao nhất từ mảng?
echo $NUM //result 69
thể trùng lặp:
How to sort an array in BASHCách tìm số cao nhất trong một mảng?
Tôi có con số trong mảng 10 30 44 44 69 12 11...
. Làm thế nào để hiển thị cao nhất từ mảng?
echo $NUM //result 69
Bạn có thể sử dụng sort
để tìm hiểu.
#! /bin/bash
ar=(10 30 44 44 69 12 11)
IFS=$'\n'
echo "${ar[*]}" | sort -nr | head -n1
Ngoài ra, tìm kiếm tối đa bản thân:
max=${ar[0]}
for n in "${ar[@]}" ; do
((n > max)) && max=$n
done
echo $max
thử điều này:
a=(10 30 44 44 69 12 11 100)
max=0
for v in ${a[@]}; do
if (($v > $max)); then max=$v; fi;
done
echo $max
kết quả trong 100
Đây là vấn đề tương tự như trong câu trả lời ở trên - có vấn đề với max = 0 - nếu tất cả các arg là âm? .. Đây là một giải pháp tốt hơn - https://stackoverflow.com/a/40719447/2107205 – mato
http://stackoverflow.com/questions/7442417/how-to-sort-an-array-in-bash – paul
Những gì bạn có cố gắng cho đến nay? Hãy thử làm theo ví dụ [vịt cao su] (http://www.codinghorror.com/blog/2012/03/rubber-duck-problem-solving.html). – Pureferret