Convertir cadena en número en shell
1. Convertir tipo numérico a tipo de carácter
La conversión de tipo numérico a tipo de carácter es relativamente común y debe ser fácil de implementar. La mayoría de las veces, el sistema puede realizar conversiones automáticamente, como por ejemplo:
aa=$((1 1)); echo $aa
A la variable aa se le asigna el valor de entero 2, pero la salida de eco ha sido Tratar como tipo de carácter. Por supuesto, también puede forzar la conversión, como por ejemplo:
echo $aa""
Al conectarse con una cadena vacía, la variable aa se convierte en un tipo de carácter.
2. El método anterior también es aplicable para convertir varios tipos de números de punto flotante en tipos de caracteres. Por ejemplo: aa=$(awk 'BEGIN{print 7.01*5-4.01 }');
echo $aa;
echo $aa"";
La variable aa es el valor de la fórmula de cálculo (7.01 * 5-4.01?), que es un número de punto flotante. Puede ver que se convierte correctamente en caracteres.
3. Convertir tipo de carácter a tipo numérico
A la inversa, también es posible convertir tipo de carácter a tipo numérico.
Por ejemplo:
aa=12;
aa=$(($a 4));
echo $aa;
En el shell, los números en las asignaciones de cambios se tratan como cadenas de forma predeterminada.
4. Conversión de formato de fecha a valor numérico
La conversión de formato de fecha a valor numérico se logra principalmente mediante el comando de fecha.
Comando: fecha -d "2018-07-24" s
La función del parámetro "s" es convertir la fecha posterior al parámetro -d en hora UTC (1970 -01 -01 00:00:00) El número de segundos que han transcurrido desde entonces.
5. Convertir el tipo de fecha a carácter
La conversión del tipo de fecha a valor numérico es casi la misma, lo que también se logra mediante el comando de fecha
date -d "2018-07- 24 12:00:25" Y-m-d
Ingrese la hora después del parámetro -d en una cadena en el formato "Y-m-d".
6. Convertir valor numérico a fecha
La conversión del tipo de fecha se puede completar mediante el comando de fecha. date -d @1538617600 Y-m-d
Utilice -d para generar la hora 1538617600? segundos desde la hora UTC (1970-01-01 00:00:00) en caracteres de formato.