texto script numero number float entero convertir convert cadena linux shell unix interactive

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.