С оболочкой POSIX:
min() {
min=$1
shift
for arg do
min=$((arg<min?arg:min))
done
printf '%s\n' "$min"
}
Все оболочки, кроме zsh
, ksh
и yash
, не поддерживают float числа.
С инструментарием POSIX:
min() {
awk 'BEGIN {
min = ARGV[1]
for(i = 2; i < ARGC; i++)
min = ARGV[i] < min ? ARGV[i] : min
print min
}' "$@"
}
И если у вас есть perl
:
min() {
perl -MList::Util=min -le 'print min @ARGV' "$@"
}
или perl6
:
min() {
perl6 -e '@*ARGS.min.say' "$@"
}