removido
(usa Nenhuma)
Enviado em 16/04/2010 - 02:18h
#!/bin/bash
SAL=$1
# troca virgula por ponto
CSAL=$( echo $SAL | sed -e 's/,/./g; s/[^0-9\.]//g')
# converte para inteiros para as comparações sejam validas
NSAL=$( echo "($CSAL * 100)" | bc | cut -d '.' -f1)
# conta casas decimais
CDEC=$( echo $CSAL | cut -d '.' -f2)
_caucular_novo_salario(){
if [ $1 -le 90000 ]; then
REAJST=$(echo "($2 * 1.20)" | bc);
echo -e "
Salario atual: R$ $2
Reajuste salarial = R$ $REAJST ( + 20% )
"
elif [ $1 -gt 90000 -a $1 -le 130000 ]; then
REAJST=$( echo "($2 * 1.10)" | bc);
echo -e "
Salario atual: R$ $2
Reajuste salarial = R$ $REAJST ( + 10% )
"
elif [ $1 -gt 130000 -a $1 -le 180000 ]; then
REAJST=$( echo "($2 * 1.05)" | bc)
echo -e "
Salario atual: R$ $2
Reajuste salarial = R$ $REAJST ( + 5% )
"
else
echo -e "
Salario atual: R$ $2
Sem reajuste salarial
"
fi
}
_zeros_esquerda(){
# retira os zeros a esquerda
ZRE=$(echo $1 | cut -c 1)
if [ $ZRE -eq 0 ]; then
# se o primeiro caractere for zero esta função chamara a si mesma dentro desta tomada de decisão tendo como novo parametro a mesma string sem o primeiro caractere
# Nota: pesquise recursividade
_zeros_esquerda $(echo $1 | cut -c 2-)
else
# senão escreve o primeiro parametro
echo $1
fi
}
if [ ${#CDEC} -le 2 ]; then
# se o numero de casas decimais for igual o menor que 2
_caucular_novo_salario $NSAL $(_zeros_esquerda $CSAL)
else
echo "
Erro: Entrada invalida $SAL
Exemplos de entradas validas:
123.00
123.10
123.05
456,00
234,76
234,05
"
fi
exit
Estude o script...