Έκδοση 1:Χρησιμοποιώντας μόνο τα ενσωματωμένα κέλυφος (bash)
Αυτή η έκδοση είναι πιο φορητή, καθώς βασίζεται μόνο σε χαρακτηριστικά γνωρίσματα που είναι κοινά για τα περισσότερα κελύφη συμβατά με τη Bourne. Ωστόσο, είναι λιγότερο αποτελεσματικό για πολύ μεγάλους αριθμούς λόγω του χειρισμού των συμβολοσειρών.
`` `bash
#!/bin/bash
Διαβάστε -p "Εισαγάγετε έναν αριθμό:" NUM
reversed_num =$ (echo "$ num" | rev)
αν ["$ num" =="$ reversed_num"]; τότε
echo "$ num είναι ένα palindrome."
αλλού
Το Echo "$ num δεν είναι παλινδρόμιο."
fi
`` `
Έκδοση 2:Χρήση AWK (πιο αποτελεσματική)
Αυτή η έκδοση χρησιμοποιεί `awk`, το οποίο είναι γενικά πιο αποτελεσματικό για αριθμητικούς χειρισμούς, ειδικά με μεγαλύτερους αριθμούς.
`` `bash
#!/bin/bash
Διαβάστε -p "Εισαγάγετε έναν αριθμό:" NUM
awk -v num ="$ num" 'Ξεκινήστε {
reversed_num ="";
temp_num =num;
ενώ (temp_num> 0) {
reversed_num =reversed_num (temp_num % 10);
temp_num =int (temp_num / 10);
}
αν (num ==reversed_num) {
Το Print Num "είναι ένα Palindrome."
} αλλιώς {
Το Print Num "δεν είναι παλινδρόμιο."
}
} '
`` `
Πώς να χρησιμοποιήσετε είτε σενάριο:
1. Αποθήκευση του κώδικα ως αρχείο (π.χ., `palindrome.sh ').
2. Κάντε το εκτελέσιμο:`chmod +x palindrome.sh`.
3. Εκτελέστε το:`./Palindrome.sh`.
4. Εισαγάγετε έναν αριθμό όταν σας ζητηθεί.
Επεξήγηση της έκδοσης 2 (AWK):
* `-v num =" $ num "`:Περνάει τον αριθμό εισόδου από τη μεταβλητή κελύφους `num 'στο σενάριο` awk`.
* `Begin`:Αυτό το μπλοκ εκτελείται πριν επεξεργαστεί οποιεσδήποτε γραμμές εισόδου.
* `reversed_num =" "":`:αρχικοποιεί μια κενή συμβολοσειρά για να αποθηκεύσει τον αντιστροφή του αριθμού.
* `temp_num =num;`:δημιουργεί ένα προσωρινό αντίγραφο του αριθμού για να αποφευχθεί η τροποποίηση του πρωτότυπου.
* `Ενώ (temp_num> 0)`:βρόχοι μέχρι να γίνει ο προσωρινός αριθμός 0.
* `reversed_num =reversed_num (temp_num % 10),`:Εξάγει το τελευταίο ψηφίο χρησιμοποιώντας τον χειριστή Modulo (` %`) και το προσθέτει σε `reversed_num`.
* `temp_num =int (temp_num / 10)` `:Αφαιρεί το τελευταίο ψηφίο με ακέραιο τμήμα (` / `).
* Η τελική δήλωση `if` συγκρίνει τους πρωτότυπους και αντιστρέβους αριθμούς και εκτυπώνει το κατάλληλο μήνυμα.
Η έκδοση `awk` συνιστάται γενικά για την αποτελεσματικότητά της, ειδικά όταν ασχολείται με μεγαλύτερους αριθμούς. Επιλέξτε την έκδοση που ταιριάζει καλύτερα στις ανάγκες σας και στο περιβάλλον του κελύφους. Θυμηθείτε να χειριστείτε πιθανά σφάλματα (όπως μη-Νυρωτική είσοδο) για ένα πιο ισχυρό σενάριο σε ένα περιβάλλον παραγωγής.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα