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.