Versión 1:Uso de solo Shell incorporados (bash)
Esta versión es más portátil, ya que se basa solo en las características comunes a la mayoría de los proyectiles compatibles con Bourne. Sin embargo, es menos eficiente para números muy grandes debido a la manipulación de la cadena.
`` `Bash
#!/bin/bash
Leer -P "Ingrese un número:" Num
Revertir el número usando String Manipulation
reversed_num =$ (echo "$ num" | rev)
Compare los números originales e invertidos
if ["$ num" =="$ reversed_num"]; entonces
echo "$ num es un palíndromo".
demás
Echo "$ num no es un palíndromo".
FI
`` `` ``
Versión 2:Uso de AWK (más eficiente)
Esta versión utiliza 'Awk`, que generalmente es más eficiente para manipulaciones numéricas, especialmente con números más grandes.
`` `Bash
#!/bin/bash
Leer -P "Ingrese un número:" Num
Use AWK para revertir el número y verificar el Palindrome
awk -v num ="$ num" 'begin {
reversed_num ="";
temp_num =num;
while (temp_num> 0) {
reversed_num =reversed_num (temp_num % 10);
temp_num =int (temp_num / 10);
}
if (num ==reversed_num) {
Impresión num "es un palíndromo".
} demás {
Impresión num "no es un palíndromo".
}
} '
`` `` ``
Cómo usar cualquier script:
1. Guarde el código como un archivo (por ejemplo, `palindrome.sh`).
2. Hazlo Ejecutable:`Chmod +x palindrome.sh`.
3. Corríelo:`./Palindrome.sh`.
4. Ingrese un número cuando se le solicite.
Explicación de la versión 2 (AWK):
* `-V num =" $ num "`:pasa el número de entrada de la variable shell `num` al script` awk`.
* `BEGIN`:Este bloque se ejecuta antes de procesar cualquier línea de entrada.
* `reversed_num =" ";`:Inicializa una cadena vacía para almacenar el número invertido.
* `temp_num =num;`:Crea una copia temporal del número para evitar modificar el original.
* `while (temp_num> 0)`:bucles hasta que el número temporal se convierta en 0.
* `reversed_num =reversed_num (temp_num % 10);`:extrae el último dígito usando el operador Modulo (` %`) y lo agrega a `reversed_num`.
* `temp_num =int (temp_num / 10);`:Elimina el último dígito por la división Integer (` /`).
* La declaración `if` final compara los números originales y revertidos e imprime el mensaje apropiado.
La versión 'AWK` generalmente se recomienda para su eficiencia, especialmente cuando se trata de números más grandes. Elija la versión que mejor se adapte a sus necesidades y un entorno de conchas. Recuerde manejar posibles errores (como la entrada no numérica) para un script más robusto en un entorno de producción.