versione 1:utilizzando solo Shell Built-in (bash)
Questa versione è più portatile in quanto si basa solo su funzionalità comuni alla maggior parte delle conchiglie compatibili con Bourne. Tuttavia, è meno efficiente per numeri molto grandi a causa della manipolazione delle stringhe.
`` `Bash
#!/bin/bash
Leggi -p "Immettere un numero:" Num
reversed_num =$ (echo "$ num" | rev)
if ["$ num" =="$ inversed_num"]; Poi
Echo "$ num è un palindromo."
altro
Echo "$ num non è un palindromo."
fi
`` `
versione 2:usando AWK (più efficiente)
Questa versione utilizza `Awk`, che è generalmente più efficiente per le manipolazioni numeriche, specialmente con numeri più grandi.
`` `Bash
#!/bin/bash
Leggi -p "Immettere un numero:" Num
awk -v num ="$ num" 'inizio {
inversed_num ="";
temp_num =num;
while (temp_num> 0) {
inversed_num =reversed_num (temp_num % 10);
temp_num =int (temp_num / 10);
}
if (num ==inversed_num) {
Stampa Num "è un palindromo."
} altro {
Stampa Num "non è un palindromo."
}
} '
`` `
Come usare uno script:
1. Salva il codice come file (ad es. `Palindrome.sh`).
2. Rendilo eseguibile:`chmod +x palindrome.sh`.
3. Esegui:`./Palindrome.sh`.
4. Immettere un numero quando richiesto.
Spiegazione della versione 2 (awk):
* `-v num =" $ num "`:passa il numero di input dalla variabile shell `num` allo script` Awk`.
* `Begin`:questo blocco esegue prima di elaborare qualsiasi riga di input.
* `inversed_num =" ";`:inizializza una stringa vuota per memorizzare il numero invertito.
* `temp_num =num;`:crea una copia temporanea del numero per evitare di modificare l'originale.
* `while (temp_num> 0)`:loop fino a quando il numero temporaneo diventa 0.
* `inversed_num =reversed_num (temp_num % 10);`:estrae l'ultima cifra usando l'operatore modulo (` %`) e lo aggiunge a `inversed_num`.
* `temp_num =int (temp_num / 10);`:rimuove l'ultima cifra per divisione intera (` /`).
* L'istruzione Final `if` confronta i numeri originali e invertiti e stampa il messaggio appropriato.
La versione `Awk` è generalmente raccomandata per la sua efficienza, specialmente quando si tratta di numeri più grandi. Scegli la versione che si adatta meglio alle tue esigenze e all'ambiente di shell. Ricorda di gestire potenziali errori (come input non numerici) per uno script più robusto in un ambiente di produzione.
sistemi © www.354353.com