linux - script - Cómo convertir una cadena a un entero en UNIX
shell script convertir texto a numero (4)
Tengo d1="11"
y d2="07"
. Quiero convertir d1
y d2
en enteros y realizar d1-d2
. ¿Cómo hago esto en UNIX?
d1 - d2
actualmente devuelve "11-07"
como resultado para mí.
Cualquiera de estos funcionará desde la línea de comandos del shell. bc
es probablemente su solución más directa sin embargo.
Utilizando bc :
$ echo "$d1 - $d2" | bc
Utilizando awk
:
$ echo $d1 $d2 | awk ''{print $1 - $2}''
Utilizando perl
:
$ perl -E "say $d1 - $d2"
Usando Python
:
$ python -c "print $d1 - $d2"
todo regreso
4
La solución estándar:
expr $d1 - $d2
También puedes hacer:
echo $(( d1 - d2 ))
¡Pero ten en cuenta que esto tratará a 07
como un número octal! (por lo que 07
es lo mismo que 7
, pero 010
es diferente de 10
).
Utilizar esta:
#include <stdlib.h>
#include <string.h>
int main()
{
const char *d1 = "11";
int d1int = atoi(d1);
printf("d1 = %d/n", d1);
return 0;
}
etc.
let d=d1-d2;echo $d;
Esto debería ayudar.