Τρόπος εντοπισμού σφαλμάτων σε σενάρια Linux Bash με το ShellCheck

Αντιμετωπίζετε πρόβλημα με ένα σενάριο Bash που γράψατε για τον υπολογιστή σας Linux; Αντί να ψάχνετε σε αμέτρητα νήματα στο StackExchange για βοήθεια προγραμματισμού, σκεφτείτε να χρησιμοποιήσετε το εργαλείο ShellCheck για τον εντοπισμό σφαλμάτων σε σενάρια Linux Bash και να βρείτε αυτόματα λάθη στον κώδικά σας.

Λάβετε το ShellCheck

Το ShellCheck είναι ένα χρήσιμο εργαλείο, αλλά δεν συνοδεύεται από το λειτουργικό σας σύστημα Linux. Αντίθετα, εάν θέλετε να το χρησιμοποιήσετε, θα πρέπει πρώτα να το εγκαταστήσετε. Σε αυτό το σεμινάριο, θα καλύψουμε τον τρόπο εγκατάστασης του ShellCheck από διάφορες επίσημες πηγές λογισμικού. Επίσης, θα σας δείξουμε επίσης πώς να κάνετε το πρόγραμμα να λειτουργεί μέσω του γενικού δυαδικού Linux.

Ανοίξτε ένα παράθυρο τερματικού και ενημερώστε τα πακέτα σας. Στη συνέχεια, ακολουθήστε τις οδηγίες που αντιστοιχούν στο λειτουργικό σας σύστημα Linux.

Ubuntu

Το ShellCheck βρίσκεται στις επίσημες πηγές λογισμικού του Ubuntu, επομένως η εγκατάστασή του είναι αρκετά εύκολη. Σε ένα τερματικό, χρησιμοποιήστε τη διαχείριση πακέτων Apt και κάντε την πιο πρόσφατη έκδοση του ShellCheck να λειτουργεί.

sudo apt install shellcheck

Debian

Το Debian Stable έχει μια παλαιότερη έκδοση του ShellCheck έτοιμη για εγκατάσταση από τους χρήστες. Λάβετε υπόψη ότι αυτή η έκδοση έχει καθυστερήσει λόγω του τρόπου με τον οποίο κάνει τα πράγματα το Debian.

  Πώς να απλοποιήσετε το DD με το GdiskDump σε Linux

Σημείωση: θέλετε μια νεότερη έκδοση του προγράμματος ShellCheck; Ακολουθήστε τον οδηγό μας και μάθετε πώς μπορείτε να αποκτήσετε πιο σύγχρονο λογισμικό στο Debian.

sudo apt-get install shellcheck

Arch Linux

Για να αποκτήσετε το ShellCheck στο Arch Linux, θα πρέπει πρώτα να ενεργοποιήσετε το αποθετήριο λογισμικού “Community”. Η ενεργοποίηση του “Community” απαιτεί επεξεργασία του αρχείου Pacman.conf. Για να επεξεργαστείτε το αρχείο, ανοίξτε το Pacman.conf στο Nano.

sudo nano /etc/pacman.conf

Κάντε κύλιση (με τα πλήκτρα βέλους) και βρείτε την ενότητα “Κοινότητα” του αρχείου. Καταργήστε όλες τις εμφανίσεις του συμβόλου # (περίπου τρεις γραμμές). Στη συνέχεια, αποθηκεύστε τις αλλαγές πατώντας το κουμπί Ctrl + O.

Με τις νέες επεξεργασίες στο Pacman.conf, πατήστε Ctrl + X για να κλείσετε το Nano. Στη συνέχεια, συγχρονίστε ξανά το Pacman για να ρυθμίσετε την πρόσβαση στο αποθετήριο “Community” του Arch Linux.

sudo pacman -Syyuu

Τέλος, εγκαταστήστε το ShellCheck στο Arch Linux με:

sudo pacman -S shellcheck

Μαλακό καπέλλο

Για να αποκτήσετε το εργαλείο ανάλυσης σεναρίων ShellCheck στο Fedora Linux, ανοίξτε ένα τερματικό και χρησιμοποιήστε το εργαλείο διαχείρισης πακέτων DNF.

sudo dnf install ShellCheck

OpenSUSE

Η εγκατάσταση του ShellCheck στο OpenSUSE δεν απαιτεί ειδικά βήματα, καθώς είναι στις κύριες πηγές λογισμικού της διανομής. Για να το αποκτήσετε, εισαγάγετε την ακόλουθη εντολή πακέτου Zypper σε ένα παράθυρο τερματικού.

sudo zypper install ShellCheck

Γενικό Linux

Οι χρήστες λιγότερο γνωστών διανομών Linux που θέλουν πρόσβαση στο εργαλείο ανάλυσης σεναρίων ShellCheck πρέπει να εγκαταστήσουν την καθολική δυαδική έκδοση. Ευτυχώς, αυτή η δυαδική έκδοση είναι εύκολη στην εγκατάσταση και δεν απαιτεί επεξεργασία με τον πηγαίο κώδικα. Για να λειτουργήσει, ακολουθήστε τα παρακάτω βήματα!

  Πώς να παίξετε το 911 Operator στο Linux

Βήμα 1: εξάγετε την έκδοση του ShellCheck που πρόκειται να κατεβάσετε στο περιβάλλον του τερματικού σας.

export scversion="stable" # or "v0.4.7", or "latest"

Βήμα 2: χρησιμοποιώντας το εργαλείο λήψης wget, πάρτε την πιο πρόσφατη δυαδική έκδοση του ShellCheck.

wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"

Βήμα 3: εξάγετε το αρχείο ShellCheck TarXZ με την εντολή tar.

tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz

Βήμα 4: εγκαταστήστε το ShellCheck στον υπολογιστή σας Linux με την εντολή cp.

cp shellcheck-"${scversion}"/shellcheck /usr/bin/

Εντοπισμός σφαλμάτων σεναρίων με το ShellCheck

Ο πρωταρχικός σκοπός του ShellCheck είναι να κοιτάξει πάνω από ένα σενάριο (συνήθως το Bash), να ανιχνεύσει εντολές που δεν χρησιμοποιούνται σωστά και να προσφέρει διορθώσεις. Για βασική χρήση, κάντε τα εξής.

Πρώτα, CD στο σημείο όπου βρίσκεται το σενάριο που θέλετε να ελέγξετε στον υπολογιστή σας Linux. Σε αυτό το σεμινάριο, το σενάριό μας είναι σε ~/shell-scripts. Το δικό σας μπορεί να διαφέρει.

cd ~/shell-scripts

Εκτελέστε την εντολή ls και προβάλετε όλα τα αρχεία στον τρέχοντα κατάλογο.

  Πώς να παίξετε το Total War: ROME II σε Linux

Σημείωση: εάν σκοπεύετε να χρησιμοποιήσετε το ShellCheck σε έναν κατάλογο με πολλούς τύπους αρχείων, είναι καλή ιδέα να συνδυάσετε το grep και το ls μαζί. Η χρήση αυτών των δύο εντολών μαζί σας επιτρέπει να φιλτράρετε όλα τα αρχεία που δεν είναι script.

ls

Ή, συνδυάστε με grep για να δείτε μόνο αρχεία σεναρίου.

ls | grep ".sh"
ls | grep ".bash"

Βρείτε το όνομα ενός αρχείου σεναρίου στη γραμμή εντολών ls και επισημάνετε το όνομα του αρχείου με το ποντίκι. Όταν είναι έτοιμο, εκτελέστε το μέσω του ShellCheck και ελέγξτε τον κωδικό σας.

shellcheck name-of-file.sh

ή

shellcheck name-of-file.bash

Αμέσως μετά την εκτέλεση της εντολής shellcheck, θα εντοπίσει προβλήματα με τον κώδικά σας και θα τον τοποθετήσει στη γραμμή εντολών τερματικού. Διαβάστε αναλυτικά και μάθετε πώς να βελτιώσετε τον προγραμματισμό σας ακολουθώντας τις προτάσεις που σας δίνει.

Αποθηκεύστε την αναφορά ShellCheck σε ένα αρχείο

Η λήψη μιας άμεσης αναφοράς στο τερματικό για τον προγραμματισμό του bash είναι εξαιρετικά χρήσιμη, ωστόσο, μπορεί να τη χάσετε εάν κλείσετε το τερματικό. Για να αποφύγετε την απώλεια της αναφοράς shellcheck, συνιστούμε να αποθηκεύσετε την έξοδο σε ένα αρχείο κειμένου, εκτελώντας το πρόγραμμα σε συνδυασμό με τη δυνατότητα >> στο τερματικό.

shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh

ή

shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash

Προβάλετε την αποθηκευμένη αναφορά σας στο τερματικό μέσω της εντολής cat.

cat ~/Documents/shellcheck-report-name-of-file.sh | more

ή

cat ~/Documents/shellcheck-report-name-of-file.bash | more