Pular para o conteúdo
  • Denunciar
  • Indicar

1. Comando

Enviado em 01/10/2016 - 00:59h

E ai galera, alguém pode me ajudar a criar um comando no shell script, que pesa digite um numero e informe se é positivo ou negativo e que informe se ele é impar ou par?

Responder tópico

2. modulo de numero inteiro

Enviado em 01/10/2016 - 08:27h

#!/bin/bash
read -p "Digite um numero: " numero
#menor que
if [ "$numero" -lt "0" ]; then
echo "$numero NEGATIVO"
fi
if [ "$numero" -eq "0" ]; then
echo "$numero ZERO"
fi
#maior que
if [ "$numero" -gt "0" ]; then
echo "$numero POSITIVO"
fi

#retorna zero se multiplo de 2
se_e_par=`expr $numero % 2`

if [ "$se_e_par" = 0 ]; then
echo " PAR"
else
echo " IMPAR"
fi

3. Re: Comando

Enviado em 01/10/2016 - 17:00h

PX_01 escreveu:

E ai galera, alguém pode me ajudar a criar um comando no shell script, que pesa digite um numero e informe se é positivo ou negativo e que informe se ele é impar ou par?
-----------------------------------------------------------------------------
Segue sugestão:

EDITADO . . . ACUSAVA ERRO NA CONVERSÃO P/ BASE DECIMAL QDO Nº É NEGATIVO

#!/bin/bash
read -p "INFORME o NuMERO: " NN
if [[ "$NN" =~ ^[-]{0,1}[0-9]{1,10}$ ]];then
[[ "$NN" =~ ^"-" ]] && { echo "$NN NEGATIVO" ;SG="-"; NN=$(tr -d '-' <<< "$NN") ; } || { echo "$NN POSITIVO" ; SG="" ; }
NN=$((10#$NN))
(((NN%2)==0)) && echo "${SG}$NN PAR" || echo "${SG}$NN IMPAR"
else
echo "$NN é INVaLIDO"
fi

É isso . . .

att.:
marcelo oliver


4. Re: Comando

Enviado em 01/10/2016 - 23:52h

Na verdade BASH aceita números com o tamanho de 2^64-1, sendo esta faixa dividida em duas de 2^63 e 2^63-1.
Uma positiva e outra negativa.

Pode ocorrer o problema do estouro e um número negativo virar positivo e vice-versa.

Algo que poderia ser feito era verificar se

1. Todos os algarismos são dígitos
2. Todos são zeros
3. O primeiro é um sinal de menos -

Deste modo qualquer sequência digitada poderia ser avaliada como sendo positiva, negativa ou zero sem armadilhas do sistema.
As avaliações podem ser feitas com echo e sed via stream ou usando substituição e substrings usando BASH puro.

Avalie a necessidade de toda esta possibilidade.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder