Eu posso conseguir isso com muitas linguagens de programação, mas não tenho idéia de como fazê-lo no bash, então eu estou pedindo ajuda.
Respostas:
1 para resposta № 1Isso precisa de ajustes para manipular números> 9 (eles são muito longos na última linha).
#! /bin/bash
main () {
local numbers=("$@")
local max=${numbers[0]}
local i
for i in $(seq 2 ${#numbers[@]}) ; do
if (( numbers[i-1] > max )) ; then
max=${numbers[i-1]}
fi
done
while ((max--)) ; do
for i in $(seq 1 ${#numbers[@]}) ; do
if (( numbers[i-1] > max )) ; then
printf "* "
else
printf " "
fi
done
printf "n"
done
printf "%d " "${numbers[@]}"
printf "n"
}
main "$@"
Ele primeiro encontra o número máximo. Em seguida, reduz o máximo de um para zero, imprimindo asteriscos para números maiores que esse "máximo".