Conversão de valores. SHELL
Estou desenvolvendo um sistema para que se o load do servidor ultrapassar 10 o sistema mate o processos ou serviços, como mysql, exim...
porém esbareri em um problema estou tendo que converter um número decimal para inteiro, isto é possível???
Por exemplo, eu pegar o valor 10.257 e converter ele para 10 ou para 11 sei lá...
Como faço isto, quais comandos?
Abraços
Conversão de valores. SHELL
Fiz um script em perl que transforma bases numéricas, cadeias de caracteres, etc.. Não utilizei os packages do perl pois queria ver QUANTO trabalho eu teria, se iria conseguir, etc.. foi umas dos primeiros scripts em perl que fiz.. sinta-se a vontade em alterá-lo.
http://phoenix.enforce.com.br/pub/nbc
Ou use a lógica dele para fazer em outra linguagem (C ou PHP por exemplo).
Se tiver php instalado, mais fácil ainda, o php assim como o perl já tem packages para fazer isso, só pesquisar a respeito.
www.php.net
www.perldoc.com
Tem a "calc" do linux também, várias distribuições mantém esse pacote.
Mas eu nunca utilizei, se quiser tentar.. olha as man-pages: "man calc", ou
http://www.isthe.com/chongo/man/calc.1.html
Abraços
Conversão de valores. SHELL
Desculpe, estou com a cabeça nas nuvens. Não prestei atenção no seu problema hehe. foi mal.. achei que você queria transformar para hexadecimal ou outra base qualquer.
Se quiser só pegar a parte inteira do número:
Código :
phoenix@devel ~ $
phoenix@devel ~ $ cat > hex.c
#include <stdio.h>
int main(int argc, char **argv)
{
if (!argv[1])
{
printf("usage: %s <numero>\n", argv[0]);
return 1;
}
printf("%d\n", (unsigned long)atoi(argv[1]));
return 0;
}
phoenix@devel ~ $ gcc -o hex hex.c
phoenix@devel ~ $ ./hex 234.123
234
Re: Conversão de valores. SHELL
Olá,
Citação:
Postado originalmente por Walfredo
Estou desenvolvendo um sistema para que se o load do servidor ultrapassar 10 o sistema mate o processos ou serviços, como mysql, exim...
porém esbareri em um problema estou tendo que converter um número decimal para inteiro, isto é possível???
Por exemplo, eu pegar o valor 10.257 e converter ele para 10 ou para 11 sei lá...
Como faço isto, quais comandos?
Abraços
Não sei como fazer type cast em shell script! mas soh pra quebrar o galho eu faria algo assim: :)
Código :
x=10.257
x=`echo $x | cut -d. -f1`
echo $x
10
Ah, voce tbm pode usar declare -i var pra declarar uma variavel como inteiro!
feito!
Conversão de valores. SHELL
Citação:
Postado originalmente por ph0enix
Desculpe, estou com a cabeça nas nuvens. Não prestei atenção no seu problema hehe. foi mal.. achei que você queria transformar para hexadecimal ou outra base qualquer.
Se quiser só pegar a parte inteira do número:
Código :
phoenix@devel ~ $
phoenix@devel ~ $ cat > hex.c
#include <stdio.h>
int main(int argc, char **argv)
{
if (!argv[1])
{
printf("usage: %s <numero>\n", argv[0]);
return 1;
}
printf("%d\n", (unsigned long)atoi(argv[1]));
return 0;
}
phoenix@devel ~ $ gcc -o hex hex.c
phoenix@devel ~ $ ./hex 234.123
234
ph0enix, olhando o sei código percebi que vc não costuma usa a opcao -Wall no gcc. Te aconselho a usar sempre!!
feito!
Conversão de valores. SHELL
show all warnings ?
Eu utilizo quando estou programando, não quando estou fazendo uma aplicação de 5 linhas. Só compilei e colei o resultado para ter certeza que era isso que ele ele desejava.
Conversão de valores. SHELL