Comando

1. Comando

Davi Oliveira da Silva
PX_01

(usa Outra)

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?


  


2. modulo de numero inteiro

Jair Adriano da Silva Martins
jair1uol

(usa Outra)

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

Marcelo Oliver
msoliver

(usa Debian)

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

Perfil removido
removido

(usa Nenhuma)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts