Νοημοσύνη δεδομένων Πλάτωνα.
Κάθετη Αναζήτηση & Αι.

Πώς να αποθηκεύσετε την έξοδο εντολών ως μεταβλητή στο Bash;

Ημερομηνία:

Εισαγωγή

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

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

Τα βασικά για τη ρύθμιση των μεταβλητών

Η αποθήκευση της εξόδου μιας εντολής ως μεταβλητή επιτυγχάνεται μέσω αντικατάσταση εντολής. Η αντικατάσταση εντολών είναι ένα περιτύλιγμα που εκτελεί την εντολή στο a περιβάλλον υποκέλυφοςκαι αντικαθιστά την περιτυλιγμένη εντολή με την τυπική έξοδο του περιβάλλοντος στο οποίο εκτελέστηκε η εντολή. Αυτή η έξοδος μπορεί να γίνει αναφορά αργότερα, εάν συνδεθεί σε μια μεταβλητή αναφοράς!

Η αντικατάσταση εντολών μπορεί να επιτευχθεί με backticks ή το σύμβολο του δολαρίου με παρενθέσεις:

`command`

$(command)

Υπάρχει συζήτηση για το αν «εντολή». (backticks) ή $(εντολή) (σύμβολο δολαρίου και παρενθέσεις) θα πρέπει να χρησιμοποιούνται ως η «βέλτιστη πρακτική». $(command) λειτουργεί καλά στην ένθεση και βελτιώνει την αναγνωσιμότητα σε ορισμένες περιπτώσεις, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε σύνταξη στα παρακάτω παραδείγματα.

Τούτου λεχθέντος - η ανάθεση της εξόδου μιας εντολής σε μια μεταβλητή στο Bash είναι τόσο εύκολη όσο:

VARIABLE=$(command)
echo "${VARIABLE}"

Τρέξιμο ${variable} είναι γνωστό ως επέκταση παραμέτρων, και χρησιμοποιείται για την αξιολόγηση και την ανάκτηση της τιμής που σχετίζεται με μια μεταβλητή αναφοράς.

Ας ρίξουμε τώρα μια ματιά στο απλό παράδειγμα ρύθμισης μιας μεταβλητής για μια εντολή για αλλαγή του χρώματος εξόδου:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

Στο απόσπασμα, χρησιμοποιήσαμε το tput εντολή και εκχώρησε την επιστρεφόμενη τιμή αυτών των εντολών για την εκτύπωση πολύχρωμου κειμένου. ο setaf αλλάζει το χρώμα του προσκηνίου και το 3 (πράσινο) και το 9 (πορτοκαλί) είναι χρωματικοί κωδικοί.

Τώρα θα προχωρήσουμε σε ένα άλλο παράδειγμα που περιέχει πολλαπλές συνθήκες για τη ρύθμιση μεταβλητών για διαφορετικές εντολές:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

Στο παραπάνω σενάριο, το whoami εντολή επιστρέφει το όνομα χρήστη του τρέχοντος χρήστη. ο uname -a επιστρέφει τις πληροφορίες συστήματος και το date επιστρέφει την τρέχουσα ώρα και ημερομηνία.

Σημείωση: Μπορούμε να συνδέσουμε την ανάθεση μεταβλητών προσθέτοντας πολλαπλές εντολές σε μία μόνο ένθετη κλήση. ο CREATE η μεταβλητή περιέχει την έξοδο του touch εντολή, η οποία με τη σειρά της δημιουργεί ένα αρχείο και ορίζει το όνομα αρχείου στην έξοδο του date +"%d%m%Y εντολή.

Ρίξτε μια ματιά στον πρακτικό μας οδηγό για την εκμάθηση του Git, με βέλτιστες πρακτικές, πρότυπα αποδεκτά από τον κλάδο και συμπεριλαμβανόμενο φύλλο εξαπάτησης. Σταματήστε τις εντολές του Git στο Google και πραγματικά μαθαίνουν το!

Τέλος, προσθέτουμε α multiline Έννοια εκχώρησης μεταβλητής εντολής προσθέτοντας μια ανάστροφη κάθετο () μεταξύ ls εντολή -l σημαία για εμφάνιση μόνο αρχείων κειμένου που χρησιμοποιούν *.txt. Η ανάστροφη κάθετο είναι ένας χαρακτήρας διαφυγής που ενημερώνει το κέλυφος να μην ερμηνεύσει τον επόμενο χαρακτήρα.

Στο echo εντολή, προσθέσαμε το -e επισημάνετε για να χρησιμοποιήσετε τον ειδικό χαρακτήρα, π.χ. n (νέα γραμμή), για να εκτυπώσετε το αποτέλεσμα στη νέα γραμμή.

Λαμβάνουμε το ακόλουθο αποτέλεσμα μετά την εκτέλεση του σεναρίου:

$ ./variable.sh

Συμπέρασμα

Σε αυτόν τον σύντομο οδηγό, ρίξαμε μια ματιά στο πώς μπορείτε να ορίσετε την έξοδο μιας εντολής σε μια μεταβλητή στο Bash. Ρίξαμε μια ματιά στη διαφορά μεταξύ των συντακτικών για αντικατάσταση εντολής, σημειώνοντας τις βελτιώσεις αναγνωσιμότητας του $(command) πάνω από αντικατάσταση με βάση το backtick. Στη συνέχεια, ρίξαμε μια ματιά σε πολλά παραδείγματα τόσο απλής ανάθεσης όσο και αλυσιδωτής/φωλιασμένης ανάθεσης εξόδου.

spot_img

Τελευταία Νοημοσύνη

spot_img

Συνομιλία με μας

Γεια σου! Πώς μπορώ να σε βοηθήσω?