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' "$@"
}