Κάθε διαδικασία στο Linux παράγει τρεις ροές δεδομένων, stdin, stdout και stderr:
- stdin : Λαμβάνει πληροφορίες από το χρήστη μέσω πληκτρολογίου
- stdout : Εμφανίζει την έξοδο στην οθόνη
- stderr : Εμφανίζει πληροφορίες σφάλματος στην οθόνη
Κάθε ροή δεδομένων έχει ένα αριθμητικό αναγνωριστικό:
Αριθμητικό αναγνωριστικό | Ονομα |
0 | stdin |
1 | stdout |
2 | stderr |
Ας εξηγήσουμε λίγο περισσότερο την ανακατεύθυνση με λεπτομέρειες:
Πώς να ανακατευθύνετε την τυπική έξοδο και το τυπικό σφάλμα στο Bash:
Για να ανακατευθύνουμε την τυπική έξοδο της εντολής, θα χρησιμοποιήσουμε το 1 με τελεστή ανακατεύθυνσης μεγαλύτερο από το σύμβολο>:
$ls 1>>stdout.txtΗ παραπάνω εντολή θα δημιουργήσει ένα αρχείο και θα τοποθετήσει την τυπική έξοδο της εντολής ls στο αρχείο stdout.txt.
Για να διαβάσετε το αρχείο stdout.txt, χρησιμοποιήστε:
$Γάταstdout.txt
Μπορούμε επίσης να ανακατευθύνουμε το τυπικό σφάλμα σε ένα αρχείο χρησιμοποιώντας την εντολή:
$Γάταmyfile.txt2>>stderr.txt
Για να προβάλετε το αρχείο stderr.txt, χρησιμοποιήστε:
$Γάταstderr.txt
Βεβαιωθείτε ότι η χρήση 2 θα είναι μεγαλύτερη από το σύμβολο>. Δεδομένου ότι δεν υπάρχει αρχείο myfile.txt στον κατάλογο, η εντολή cat θα δώσει ένα σφάλμα που θα προσαρτηθεί στο αρχείο stderr.txt.
Αυτές οι τυπικές έξοδοι μπορούν να ανακατευθυνθούν με μια μόνο εντολή επίσης, χρησιμοποιήστε:
$ls 1>>stdout.txt2>>stderr.txt
Η έξοδος της εντολής ls θα γραφτεί στο stdout.txt αρχείο, αλλά το stderr.txt θα παραμείνει κενό γιατί δεν θα υπήρχε σφάλμα.
Τώρα ας κάνουμε για το stderr.txt:
$Γάταmyfile.txt1>>stdout.txt2>>stderr.txt
Χρησιμοποιήστε την παρακάτω εντολή για να διαβάσετε το stderr.txt.
$Γάταstderr.txt
Και φυσικά, το stdout.txt θα είναι κενό.
συμπέρασμα :
Η εντολή Linux κατά την εκτέλεση δίνει τυπική έξοδο που θα μπορούσε να είναι επιτυχής ή έξοδος σφάλματος. Γενικά, αυτές οι έξοδοι δεν μπορούν να ανακατευθυνθούν χρησιμοποιώντας τελεστές ανακατεύθυνσης. πρέπει να χρησιμοποιήσουμε συγκεκριμένα αριθμητικά αναγνωριστικά με το σύμβολο>. Σε αυτόν τον οδηγό, μάθαμε πώς να χρησιμοποιούμε αυτά τα αριθμητικά κλειδιά για να ανακατευθύνουμε την τυπική έξοδο σε ένα αρχείο με παραδείγματα.