Com o shell POSIX:
min() {
min=$1
shift
for arg do
min=$((arg<min?arg:min))
done
printf '%s\n' "$min"
}
Todos os shells, mas zsh , ksh e yash , não suportam números flutuantes.
Com o toolchest POSIX:
min() {
awk 'BEGIN {
min = ARGV[1]
for(i = 2; i < ARGC; i++)
min = ARGV[i] < min ? ARGV[i] : min
print min
}' "$@"
}
E se você tiver perl :
min() {
perl -MList::Util=min -le 'print min @ARGV' "$@"
}
ou perl6 :
min() {
perl6 -e '@*ARGS.min.say' "$@"
}