Saltar al contenido

exec: Linux Command και Unix Command

5 de junio de 2021

Στο Linux, το exec Η εντολή αντικαθιστά την τρέχουσα διαδικασία κελύφους με μια καθορισμένη εντολή – στην ουσία, μεταφέροντας το αναγνωριστικό διεργασίας του τρέχοντος κελύφους σε μια νέα διαδικασία, η οποία στη συνέχεια υποθέτει ότι PID. Οι περισσότεροι περιστασιακοί χρήστες επιτραπέζιου Linux δεν πρέπει να χρησιμοποιούν exec. Είναι ένα ισχυρό πρόγραμμα με περιορισμένη περίπτωση χρήσης σεναρίων. Σε κανονικές συνθήκες, σπάνια υπάρχει αξία για επίκληση exec για συνήθεις λειτουργίες κελύφους.

Πώς λειτουργεί το «exec»

Όταν τρέχετε exec με μια νέα εντολή ως επιχείρημα, το Linux εκτελεί αυτήν τη νέα εντολή χρησιμοποιώντας την ίδια διαδικασία με το κέλυφος που την επικαλέστηκε. Εάν την εκτελέσετε χωρίς να καθορίσετε μια νέα εντολή, τότε πραγματοποιούνται σχετικές ανακατευθύνσεις στο τρέχον κέλυφος. Για παράδειγμα, όταν ξεκινάτε μια περίοδο λειτουργίας κελύφους ξεκινώντας ένα πρόγραμμα διαχείρισης τερματικού, το προεπιλεγμένο κέλυφος καλεί αυτόματα. Όταν πληκτρολογείτε έξοδος, η περίοδος λειτουργίας του κελύφους τερματίζεται και, ανάλογα με το λογισμικό διαχείρισης τερματικού, το παράθυρο ενδέχεται να εξαφανιστεί. Για να δείτε πώς exec λειτουργεί, ξεκινήστε ένα κέλυφος και μετά ξεκινήστε ένα δεύτερο κέλυφος στην ίδια περίοδο λειτουργίας. Εάν χρησιμοποιείτε το Zsh, για παράδειγμα, τότε όταν ανοίξει το παράθυρο τερματικού, ξεκινήστε μια άλλη συνεδρία Zsh.

Όταν ελέγχετε τη διαδικασία που εκτελείται, θα βλέπετε ότι κάθε φορά που καλείτε το κέλυφος, δημιουργείται μια νέα εργασία με ξεχωριστό αναγνωριστικό διαδικασίας. Και κάθε φορά που βγαίνετε από ένα κέλυφος με το έξοδος εντολή, μία από αυτές τις συνεδρίες τερματίζεται. Εάν εκτελέσετε ημερομηνία από μια συνεδρία κελύφους, θα δείτε την ημερομηνία που εμφανίζεται στην τυπική έξοδο. Εάν χρησιμοποιείτε exec για να ανακατευθύνετε την τυπική έξοδο σε ένα αρχείο κειμένου, την τυπική έξοδο που αναμένετε να δείτε γράφει στο αρχείο, μέχρι να βγείτε από τη συνεδρία Zsh που exec έλεγχοι. Όταν βγείτε, η τυπική έξοδος εμφανίζεται όπως αναμένεται επειδή η αρχική περίοδος λειτουργίας Zsh ενεργοποιείται ξανά.

εντολή linux exec

Χρήση θήκης για «exec»

Μία κοινή περίπτωση χρήσης για exec σχετίζεται με την τακτοποίηση ενός σεναρίου. Εάν πρέπει να χρησιμοποιήσετε ένα σενάριο για να γράψετε τις παραμέτρους μιας εντολής, τότε τερματίστε το σενάριο με exec ξεκινά το νέο πρόγραμμα με αυτές τις παραμέτρους και κλείνει την τρέχουσα περίοδο λειτουργίας του κελύφους.