Η εντολή Linux Κτυπώ δυνατά είναι έναSH-compatible interpreter που εκτελεί εντολές που διαβάζονται από την τυπική είσοδο ή από ένα αρχείο.Κτυπώ δυνατά ενσωματώνει επίσης χρήσιμα χαρακτηριστικά από τα κελύφη Korn και C (ksh καιcsh).
Bash Επιλογές
Εκτός από τις επιλογές κελύφους ενός χαρακτήρα που τεκμηριώνονται στην περιγραφή τουσειρά ενσωματωμένη εντολή,κτυπώ δυνατά ερμηνεύει τις ακόλουθες επιλογές όταν καλείται:
- -ντο σειρά: Αν το-ντο υπάρχει η επιλογή, τότε οι εντολές διαβάζονται από σειρά . Αν υπάρχουν επιχειρήματα μετά το σειρά , αντιστοιχίζονται στις παραμέτρους θέσης, ξεκινώντας με$0.
- -Εγώ: Αν το-Εγώ υπάρχει η επιλογή, το κέλυφος είναι διαδραστικό .
- -μεγάλο: Φτιαχνω, κανωκτυπώ δυνατά ενεργεί σαν να είχε χρησιμοποιηθεί ως κέλυφος σύνδεσης.
- -r: Αν το-r υπάρχει το κέλυφος περιορισμένος.
- -μικρό: Αν το-μικρό υπάρχει η επιλογή ή αν δεν υπάρχουν παραμέτρους μετά την επεξεργασία των επιλογών, τότε οι εντολές διαβάζονται από την τυπική είσοδο. Αυτή η επιλογή επιτρέπει να οριστούν οι παράμετροι θέσης κατά την κλήση ενός διαδραστικού κελύφους.
- -ΡΕ: Μια λίστα όλων των συμβολοσειρών με δύο τιμές που προηγείται$ εκτυπώνεται στην τυπική έξοδο. Αυτές είναι οι σειρές που υπόκεινται σε μετάφραση γλώσσας όταν δεν υπάρχει η τρέχουσα τοπική ρύθμισηντο ήPOSIX. Αυτό σημαίνει ότι -n επιλογή; δεν θα εκτελεστούν εντολές.
- - + Ο shopt_option : shopt_option είναι μια από τις επιλογές κελύφους που γίνονται αποδεκτές από τοκοκκινίζει ενσωματωμένο. Αν shopt_option είναι παρών,-Ο ορίζει την αξία αυτής της επιλογής και+ Ο το απομακρύνει. Αν shopt_option δεν παρέχονται, τα ονόματα και οι τιμές των επιλογών κελύφους που έγιναν αποδεκτές από τοκοκκινίζει εκτυπώνονται στην τυπική έξοδο. Αν η επιλογή κλήσης είναι + Ο, η έξοδος εμφανίζεται σε μορφή που μπορεί να χρησιμοποιηθεί ξανά ως είσοδος.
- --: ΕΝΑ-- σηματοδοτεί το τέλος των επιλογών και απενεργοποιεί την περαιτέρω επεξεργασία των επιλογών. Οποιαδήποτε επιχειρήματα μετά το-- αντιμετωπίζονται ως ονόματα αρχείων και επιχειρήματα. Ένα επιχείρημα του- είναι ισοδύναμο με--.
Κτυπώ δυνατά ερμηνεύει επίσης διάφορες επιλογές πολλαπλών χαρακτήρων. Αυτές οι επιλογές πρέπει να εμφανίζονται στη γραμμή εντολών πριν από τις επιλογές ενός χαρακτήρα που πρέπει να αναγνωριστούν:
- --dump-po-strings: Ισοδυναμεί με-ΡΕ, αλλά η έξοδος είναι στο GNU gettext ταχυδρομείο (φορητού αντικειμένου).
- - χορδές αποθέματος: Ισοδυναμεί με-ΡΕ.
- --βοήθεια: Εμφανίζει ένα μήνυμα χρήσης στην τυπική έξοδο και τερματίζει με επιτυχία.
- --επιχειρηματικό αρχείο: αρχείο και --rcfile αρχείο : Εκτελέστε εντολές από αρχείο αντί του τυπικού αρχείου προσωπικής αρχικοποίησης ~ / .bashrc αν το κέλυφος είναι διαδραστικό.
- --Σύνδεση: Ισοδυναμεί με-μεγάλο.
- --μετάθεση: Μην χρησιμοποιείτε το GNUreadline βιβλιοθήκη για να διαβάσει τις γραμμές εντολών όταν το κέλυφος είναι διαδραστικό.
- - νοπροφίλ: Μην διαβάσετε το αρχείο εκκίνησης σε όλο το σύστημα / etc / profile ή οποιοδήποτε από τα προσωπικά αρχεία αρχικοποίησης ~ / .bash_profile , ~ / .bash_login , ή ~ / .profile . Από προεπιλογή,κτυπώ δυνατά διαβάζει αυτά τα αρχεία όταν καλείται ως κέλυφος σύνδεσης.
- -Νωρίς: Μην διαβάσετε και εκτελέσετε το προσωπικό αρχείο αρχικοποίησης ~ / .bashrc αν το κέλυφος είναι διαδραστικό. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή εάν το κέλυφος χρησιμοποιηθεί ωςSH.
- --posix: Αλλάξτε τη συμπεριφορά τουκτυπώ δυνατά όπου η προεπιλεγμένη λειτουργία διαφέρει από το πρότυπο POSIX ώστε να ταιριάζει με το πρότυπο ( posix λειτουργία ).
- --περιορισμένος: Το κέλυφος γίνεται περιορισμένο.
- -rpm-απαιτεί: Δημιουργήστε τη λίστα των αρχείων που απαιτούνται για την εκτέλεση του σεναρίου κελύφους. Αυτό σημαίνει '-n' και υπόκειται στους ίδιους περιορισμούς όπως ο έλεγχος του ελέγχου σφαλμάτων κατά τη συμπλήρωση. Τα backticks, οι δοκιμές και οι evals δεν αναλύονται, έτσι μπορεί να χάσουν κάποιες εξαρτήσεις.
- --πολύλογος: Ισοδυναμεί με-v.
- --εκδοχή: Εμφάνιση πληροφοριών έκδοσης για αυτήν την εμφάνιση τουκτυπώ δυνατά σχετικά με την τυπική έξοδο και την έξοδο με επιτυχία.
Επιχειρήματα
Αν παραμείνουν τα επιχειρήματα μετά την επεξεργασία των επιλογών και ούτε το-ντο ούτε το-μικρό , το πρώτο όρισμα θεωρείται ότι είναι το όνομα ενός αρχείου που περιέχει εντολές κελύφους. Αν κτυπώ δυνατά επικαλείται με αυτόν τον τρόπο,$0 έχει οριστεί στο όνομα του αρχείου και οι παράμετροι θέσης έχουν οριστεί στα υπόλοιπα επιχειρήματα.Κτυπώ δυνατά διαβάζει και εκτελεί εντολές από αυτό το αρχείο. τότε εξέρχεται.Κτυπώ δυνατάΗ κατάσταση εξόδου είναι η κατάσταση εξόδου της τελευταίας εντολής που εκτελέστηκε στο σενάριο. Εάν δεν εκτελούνται εντολές, η κατάσταση εξόδου είναι 0. Πρώτα επιχειρείται η προσπάθεια ανοίγματος του αρχείου στον τρέχοντα κατάλογο και, αν δεν βρεθεί αρχείο, τότε το κελί αναζητά τους καταλόγους σεΜΟΝΟΠΑΤΙ για το σενάριο.
Επίκληση
ΕΝΑ συνδεθείτε κέλυφος είναι εκείνη του οποίου ο πρώτος χαρακτήρας του μηδενός είναι α-, ή ένα ξεκίνησε με το--Σύνδεση επιλογή.
Ενα διαδραστικό shell είναι ένα ξεκίνημα χωρίς επιχειρήματα μη επιλογής και χωρίς το-ντο επιλογή της οποίας η τυποποιημένη είσοδος και η έξοδος είναι αμφότερα συνδεδεμένα με τους ακροδέκτες όπως καθορίζεται από το isatty (3), ή ένα ξεκίνησε με το-Εγώ επιλογή.PS1 έχει οριστεί και $- περιλαμβάνει εάν το bash είναι διαδραστικό, επιτρέποντας σε ένα σενάριο κελύφους ή ένα αρχείο εκκίνησης να δοκιμάσει αυτή την κατάσταση.
Οι ακόλουθες παράγραφοι περιγράφουν τον τρόποκτυπώ δυνατά εκτελεί τα αρχεία εκκίνησης. Εάν κάποιο από τα αρχεία υπάρχει αλλά δεν μπορεί να διαβαστεί,κτυπώ δυνατά αναφέρει ένα σφάλμα. Τα Tildes επεκτείνονται σε ονόματα αρχείων όπως περιγράφεται στην επέκταση Tilde.
Πότεκτυπώ δυνατά χρησιμοποιείται ως αλληλεπιδραστικό κέλυφος σύνδεσης ή ως μη αλληλεπιδραστικό κέλυφος με το--Σύνδεση επιλογή, πρώτα διαβάζει και εκτελεί εντολές από το αρχείο / etc / profile , εάν υπάρχει το αρχείο. Μετά την ανάγνωση αυτού του αρχείου, ψάχνει ~ / .bash_profile , ~ / .bash_login , και ~ / .profile , με αυτή τη σειρά και διαβάζει και εκτελεί εντολές από την πρώτη που υπάρχει και είναι αναγνώσιμη. ο- νοπροφίλ μπορεί να χρησιμοποιηθεί όταν το κέλυφος αρχίσει να παρεμποδίζει αυτή τη συμπεριφορά.
Όταν εξέρχεται ένα κέλυφος σύνδεσης,κτυπώ δυνατά διαβάζει και εκτελεί εντολές από το αρχείο ~ / .bash_logout , εάν υπάρχει.
Όταν ξεκινήσει ένα διαδραστικό κέλυφος που δεν είναι κέλυφος σύνδεσης,κτυπώ δυνατά διαβάζει και εκτελεί εντολές από ~ / .bashrc , εάν υπάρχει το αρχείο. Αυτό μπορεί να ανασταλεί με τη χρήση του-Νωρίς επιλογή. ο--rcfile αρχείο επιλογή θα ισχύεικτυπώ δυνατά να διαβάζουν και να εκτελούν εντολές από αρχείο αντί ~ / .bashrc .
Πότεκτυπώ δυνατά ξεκινάει μη αλληλεπιδραστικά - για παράδειγμα, τρέχει ένα σενάριο κελύφους - αναζητά τη μεταβλητήBASH_ENV στο περιβάλλον, επεκτείνει την αξία του αν εμφανίζεται εκεί και χρησιμοποιεί την αναπτυγμένη τιμή ως το όνομα ενός αρχείου για ανάγνωση και εκτέλεση.Κτυπώ δυνατά συμπεριφέρεται σαν να εκτελέστηκε η ακόλουθη εντολή:
αν -n "$ BASH_ENV"; έπειτα . "$ BASH_ENV"; fi
αλλά η αξία τουΜΟΝΟΠΑΤΙ η μεταβλητή δεν χρησιμοποιείται για την αναζήτηση του ονόματος αρχείου. Ανκτυπώ δυνατά επικαλείται το όνομαSH, προσπαθεί να μιμηθεί τη συμπεριφορά εκκίνησης των ιστορικών εκδόσεων τουSH όσο το δυνατόν πιο στενά, ενώ συμμορφώνεται επίσης με το πρότυπο POSIX. Όταν καλείται ως διαδραστικό κέλυφος σύνδεσης ή ένα μη αλληλεπιδραστικό κέλυφος με το--Σύνδεση επιλογή, προσπαθεί πρώτα να διαβάσει και να εκτελέσει εντολές από / etc / profile και ~ / .profile , με αυτή τη σειρά. ο- νοπροφίλ μπορεί να χρησιμοποιηθεί για την παρεμπόδιση αυτής της συμπεριφοράς. Όταν χρησιμοποιείται ως αλληλεπιδραστικό κέλυφος με το όνομα SH, κτυπώ δυνατά αναζητά τη μεταβλητήENV, επεκτείνει την αξία του αν έχει οριστεί και χρησιμοποιεί την επεκταμένη τιμή ως το όνομα ενός αρχείου για ανάγνωση και εκτέλεση. Από το κέλυφος που επικαλείται ωςSH δεν προσπαθεί να διαβάσει και να εκτελέσει εντολές από οποιαδήποτε άλλα αρχεία εκκίνησης, το--rcfile επιλογή δεν έχει καμία επίδραση. Ένα μη αλληλεπιδραστικό κέλυφος που επικαλείται με το όνομαSH δεν επιχειρεί να διαβάσει άλλα αρχεία εκκίνησης. Όταν καλείται ωςSH, κτυπώ δυνατά εισέρχεται posix μετά την ανάγνωση των αρχείων εκκίνησης. Πότεκτυπώ δυνατά ξεκίνησε posix , όπως και με το--posix επιλογή γραμμής εντολών, ακολουθεί το πρότυπο POSIX για αρχεία εκκίνησης. Σε αυτήν τη λειτουργία, τα διαδραστικά κελύφη επεκτείνουν τοENV μεταβλητή και οι εντολές διαβάζονται και εκτελούνται από το αρχείο του οποίου το όνομα είναι η διευρυμένη τιμή. Δεν γίνεται ανάγνωση άλλων αρχείων εκκίνησης. Κτυπώ δυνατά προσπαθεί να προσδιορίσει πότε τρέχει συνήθως από το απομακρυσμένο κέλυφος δαίμονα rshd . Αν κτυπώ δυνατά καθορίζει ότι εκτελείται από rshd , διαβάζει και εκτελεί εντολές από ~ / .bashrc , αν το αρχείο υπάρχει και είναι αναγνώσιμο. Δεν θα το κάνει αν επικαλείται ωςSH. ο-Νωρίς μπορεί να χρησιμοποιηθεί για την παρεμπόδιση αυτής της συμπεριφοράς και το--rcfile μπορεί να χρησιμοποιηθεί για να εξαναγκάσει την ανάγνωση ενός άλλου αρχείου, αλλά rshd δεν επικαλείται γενικά το κέλυφος με αυτές τις επιλογές ή τους επιτρέπουν να προσδιοριστούν. Εάν το κέλυφος ξεκινάει με την πραγματική ταυτότητα χρήστη (ομάδα) δεν είναι ίση με την πραγματική ταυτότητα χρήστη (ομάδα), και το-Π η επιλογή δεν παρέχεται, δεν γίνεται ανάγνωση αρχείων εκκίνησης, οι λειτουργίες του κελύφους δεν κληρονομούνται από το περιβάλλον, τοΣΚΟΥΛΑΡΙΚΙΑ μεταβλητή, εάν εμφανίζεται στο περιβάλλον, αγνοείται και το πραγματικό αναγνωριστικό χρήστη έχει οριστεί ως το πραγματικό αναγνωριστικό χρήστη. Αν το-Π παρέχεται η επιλογή κατά την κλήση, η συμπεριφορά εκκίνησης είναι ίδια, αλλά το πραγματικό αναγνωριστικό χρήστη δεν επαναφέρεται. Οι ακόλουθοι ορισμοί χρησιμοποιούνται σε όλο το υπόλοιπο έγγραφο: Δεσμευμένες λέξεις είναι λέξεις που έχουν ιδιαίτερη σημασία στο κέλυφος. Οι ακόλουθες λέξεις αναγνωρίζονται ως δεσμευμένες όταν είναι μη καταγεγραμμένες και είτε η πρώτη λέξη μιας απλής εντολής ή η τρίτη λέξη του aυπόθεσηήΓια εντολή: ! περίπτωση κάνουμε elif αλλιώς esac fi για λειτουργία αν σε επιλέξτε τότε έως ότου {} χρόνο ΕΝΑ απλή εντολή είναι μια ακολουθία προαιρετικών μεταβλητών ταξινομήσεων που ακολουθείται απόκενό- διανεμημένες λέξεις και ανακατευθύνσεις και τερματισμένες από ένα χειριστή ελέγχου . Η πρώτη λέξη καθορίζει την εντολή που πρέπει να εκτελεστεί και μεταβιβάζεται ως μηδέν. Οι υπόλοιπες λέξεις μεταβιβάζονται ως επιχειρήματα στην εντολή που καλείται. Η τιμή επιστροφής του a απλή εντολή είναι η κατάσταση εξόδου ή 128+ n αν η εντολή τερματιστεί με σήμα n . ΕΝΑ αγωγός είναι μια ακολουθία μίας ή περισσότερων εντολών που χωρίζονται από τον χαρακτήρα|. Η μορφή ενός αγωγού είναι χρόνος -Π ! εντολή | command2 … . Η τυπική έξοδος του εντολή συνδέεται μέσω ενός σωλήνα στην τυπική είσοδο του command2 . Αυτή η σύνδεση εκτελείται πριν από οποιεσδήποτε ανακατευθύνσεις καθορίζονται από την εντολή. Εάν η δεσμευμένη λέξη! πριν από έναν αγωγό, η κατάσταση εξόδου αυτού του αγωγού είναι το λογικό NOT της κατάστασης εξόδου της τελευταίας εντολής. Διαφορετικά, η κατάσταση του αγωγού είναι η κατάσταση εξόδου της τελευταίας εντολής. Το κέλυφος περιμένει για να τερματίσει όλες οι εντολές στον αγωγό πριν επιστρέψει μια τιμή. Αν τοχρόνος η δεσμευμένη λέξη προηγείται ενός αγωγού, ο χρόνος που έχει παρέλθει καθώς και ο χρόνος χρήσης και του συστήματος που καταναλώνεται από την εκτέλεσή του αναφέρονται κατά τη λήξη του αγωγού. ο-Π επιλογή μεταβάλλει τη μορφή εξόδου σε εκείνη που καθορίζεται από το POSIX. οΜΟΡΦΗ ΩΡΑΣ η μεταβλητή μπορεί να οριστεί σε μια συμβολοσειρά μορφής που καθορίζει τον τρόπο εμφάνισης των πληροφοριών χρονισμού. Κάθε εντολή σε έναν αγωγό εκτελείται ως ξεχωριστή διαδικασία (για παράδειγμα σε ένα υποσύνολο). ΕΝΑ λίστα είναι μια ακολουθία ενός ή περισσοτέρων αγωγών που διαχωρίζονται από έναν από τους χειριστές;, &, &&, ή||, και προαιρετικά τερματίζεται από ένα από τα;, &, ή Από αυτούς τους χειριστές λίστας,&& και|| έχουν την ίδια προτεραιότητα, ακολουθούμενη από; και&, που έχουν την ίδια προτεραιότητα. Μια ακολουθία από μία ή περισσότερες νέες γραμμές μπορεί να εμφανιστεί σε a λίστα αντί για ένα ερωτηματικό για να οριοθετήσετε τις εντολές. Αν μια εντολή τερματίζεται από τον χειριστή ελέγχου&, το κέλυφος εκτελεί την εντολή στο Ιστορικό σε ένα υποκεφάλαιο. Το κέλυφος δεν περιμένει την ολοκλήρωση της εντολής και η κατάσταση επιστροφής είναι 0. Οι εντολές διαχωρίζονται με a; εκτελούνται διαδοχικά. το κέλυφος περιμένει για κάθε εντολή να τερματίσει με τη σειρά του. Η κατάσταση επιστροφής είναι η κατάσταση εξόδου της τελευταίας εντολής που εκτελέστηκε. Οι φορείς ελέγχου&& και|| υποδηλώνουν λίστες AND και λίστες OR, αντίστοιχα. Μια λίστα AND έχει τη φόρμα command1 && command2 command2 εκτελείται αν και μόνο αν, command1 επιστρέφει μηδενική κατάσταση εξόδου. Μια λίστα OR έχει τη φόρμα command1 || command2 command2 εκτελείται αν και μόνο αν command1 επιστρέφει κατάσταση μη μηδενικής εξόδου. Η κατάσταση επιστροφής των λιστών AND και OR είναι η κατάσταση εξόδου της τελευταίας εντολής που εκτελέστηκε στη λίστα. ΕΝΑ σύνθετη εντολή είναι ένα από τα ακόλουθα: (λίστα) : λίστα εκτελείται σε ένα υποσύνολο. Οι αναθέσεις μεταβλητών και οι ενσωματωμένες εντολές που επηρεάζουν το περιβάλλον του κελύφους δεν παραμένουν σε ισχύ μετά την ολοκλήρωση της εντολής. Η κατάσταση επιστροφής είναι η κατάσταση εξόδου του λίστα . {list; }} : λίστα εκτελείται απλά στο τρέχον περιβάλλον κελύφους. λίστα πρέπει να τερματιστεί με μια νέα γραμμή ή ένα ερωτηματικό. Αυτό είναι γνωστό ως a εντολή ομάδας . Η κατάσταση επιστροφής είναι η κατάσταση εξόδου του λίστα . Σημειώστε ότι σε αντίθεση με τα metacharacters( και), { και} είναι αποκλεισμένες λέξεις και πρέπει να συμβεί όταν επιτρέπεται η αναγνώριση μιας δεσμευμένης λέξης. Δεδομένου ότι δεν προκαλούν διάλειμμα λέξης, πρέπει να διαχωριστούν από λίστα από τα κενά. ((έκφραση)) : Ο έκφραση αξιολογείται σύμφωνα με τους κανόνες που περιγράφονται στην ενότητα Αριθμητική Αξιολόγηση. Εάν η τιμή της έκφρασης είναι μηδενική, η κατάσταση επιστροφής είναι 0. διαφορετικά η κατάσταση επιστροφής είναι 1. Αυτό είναι ακριβώς ισοδύναμο μεαφήνω ' έκφραση '. έκφραση : Επιστρέφει μια κατάσταση 0 ή 1 ανάλογα με την αξιολόγηση της υπό όρους έκφρασης έκφραση . Οι εκφράσεις αποτελούνται από τα αρχέγονα που περιγράφονται παρακάτω στο Υποχρεωτικές εκφράσεις. Ο διαχωρισμός λέξεων και η επέκταση διαδρομής δεν εκτελούνται στις λέξεις μεταξύ των και. η επέκταση tilde, η παράμετρος και η μεταβλητή επέκταση, η αριθμητική επέκταση, η υποκατάσταση της εντολής, η αντικατάσταση της διαδικασίας και η αφαίρεση των τιμών. Οταν ο== και!= χρησιμοποιούνται οι χειριστές, η χορδή προς τα δεξιά του χειριστή θεωρείται ως μοτίβο και αντιστοιχεί σύμφωνα με τους κανόνες που περιγράφονται στην ενότηταΑντιστοίχιση μοτίβων. Η τιμή επιστροφής είναι 0 αν η συμβολοσειρά ταιριάζει ή δεν ταιριάζει με το μοτίβο, αντίστοιχα, και 1 διαφορετικά. Οποιοδήποτε τμήμα του μοτίβου μπορεί να αναφερθεί για να το αναγκάσει να ταιριάζει ως κορδόνι. Οι εκφράσεις μπορούν να συνδυαστούν χρησιμοποιώντας τους ακόλουθους χειριστές, οι οποίοι απαριθμούνται με φθίνουσα σειρά προτεραιότητας: ο&& και|| οι φορείς εκμετάλλευσης δεν αξιολογούν expression2 αν η τιμή του έκφραση1 είναι επαρκής για να προσδιοριστεί η τιμή επιστροφής ολόκληρης της έκφρασης υπό όρους. Σε ένα μη διαδραστικό κέλυφος ή σε ένα διαδραστικό κέλυφος στο οποίο το interactive_comments επιλογή στοκοκκινίζει builtin είναι ενεργοποιημένη, μια λέξη που αρχίζει με# προκαλεί την παραβίαση αυτής της λέξης και όλων των υπόλοιπων χαρακτήρων στη γραμμή αυτή. Ένα διαδραστικό κέλυφος χωρίς τοinteractive_comments η ενεργοποιημένη επιλογή δεν επιτρέπει σχόλια. ο interactive_comments επιλογή είναι ενεργοποιημένη από προεπιλογή σε διαδραστικά κελύφη. Αναφορά χρησιμοποιείται για να αφαιρέσει την ειδική έννοια ορισμένων χαρακτήρων ή λέξεων στο κέλυφος. Η παραπομπή μπορεί να χρησιμοποιηθεί για να απενεργοποιήσετε την ειδική επεξεργασία ειδικών χαρακτήρων, για να αποτρέψετε την αναγνώριση των αποκλεισμένων λέξεων ως τέτοια και για να αποτρέψετε την επέκταση παραμέτρων. Κάθε ένα από metacharacters που αναφέρονται παραπάνω στην ενότηταΟρισμοί έχει ιδιαίτερο νόημα στο κέλυφος και πρέπει να αναφέρεται εάν πρόκειται να αναπαρασταθεί. Όταν χρησιμοποιούνται οι εγκαταστάσεις επέκτασης ιστορικού εντολών, το ιστορική επέκταση χαρακτήρα, συνήθως!, πρέπει να αναφέρονται για να αποφευχθεί η επέκταση της ιστορίας. Υπάρχουν τρεις μηχανισμοί δήλωσης: το χαρακτήρα διαφυγής , μεμονωμένα αποσπάσματα και διπλά εισαγωγικά. Μια μη αναφερόμενη αντίστροφη κάθετος () είναι το χαρακτήρα διαφυγής . Διατηρεί την κυριολεκτική τιμή του επόμενου χαρακτήρα που ακολουθεί με εξαίρεση την Ο κλεισμός χαρακτήρων σε απλά εισαγωγικά διατηρεί την κυριολεκτική τιμή κάθε χαρακτήρα μέσα στα εισαγωγικά. Ένα μοναδικό απόσπασμα δεν μπορεί να συμβεί μεταξύ των μοναδικών εισαγωγικών, ακόμα και όταν προηγείται από μια ανάστροφη κάθετο. Η συμπλήρωση χαρακτήρων σε διπλά εισαγωγικά διατηρεί την κυριολεκτική τιμή όλων των χαρακτήρων μέσα στα εισαγωγικά, με εξαίρεση την$, ', και. Οι χαρακτήρες$ και' διατηρούν το ειδικό τους νόημα μέσα σε διπλά εισαγωγικά. Η αντίστροφη κάθετος διατηρεί την ιδιαίτερη σημασία της μόνο όταν ακολουθείται από έναν από τους ακόλουθους χαρακτήρες:$, ', ', , ή Οι ειδικές παράμετροι* και@ έχουν ιδιαίτερη σημασία όταν βρίσκονται σε διπλά εισαγωγικά. Λέξεις της φόρμας$' σειρά «αντιμετωπίζονται ειδικά. Η λέξη επεκτείνεται στο σειρά , με αντικατασταθέντες χαρακτήρες που αντικαταστάθηκαν όπως καθορίζεται από το πρότυπο ANSI C. Οι ακολουθίες διαφυγής επαναφοράς, εάν υπάρχουν, αποκωδικοποιούνται ως εξής: Το εκτεταμένο αποτέλεσμα είναι μονοψήφιο, σαν να μην υπήρχε το σύμβολο του δολαρίου. Μια συμβολοσειρά διπλού λόγου που προηγείται από ένα σύμβολο του δολαρίου ($) θα προκαλέσει την μετάφραση της συμβολοσειράς σύμφωνα με την τρέχουσα τοπική ρύθμιση. Αν υπάρχει η τρέχουσα τοπική ρύθμισηντο ήPOSIX, το σήμα του δολαρίου αγνοείται. Αν η συμβολοσειρά μεταφραστεί και αντικατασταθεί, η αντικατάσταση είναι διπλή. ΕΝΑ παράμετρο είναι μια οντότητα που αποθηκεύει τιμές. Μπορεί να είναι α όνομα , έναν αριθμό ή έναν από τους ειδικούς χαρακτήρες που αναφέρονται παρακάτωΕιδικές παράμετροι. Για τους σκοπούς του κελύφους, α μεταβλητός είναι μια παράμετρος που υποδηλώνεται με a όνομα . Μια μεταβλητή έχει a αξία και μηδέν ή περισσότερο γνωρίσματα . Τα χαρακτηριστικά προσδιορίζονται χρησιμοποιώντας τοδηλώνω ενσωματωμένη εντολή. Μια παράμετρος έχει οριστεί εάν έχει εκχωρηθεί μια τιμή. Η μηδενική συμβολοσειρά είναι μια έγκυρη τιμή. Μόλις οριστεί μια μεταβλητή, μπορεί να απενεργοποιηθεί μόνο χρησιμοποιώντας τοανενεργό ενσωματωμένη εντολή. ΕΝΑ μεταβλητός μπορεί να ανατεθεί με δήλωση του εντύπου: όνομα = αξία Αν αξία δεν δίνεται, η μεταβλητή έχει εκχωρηθεί η μηδενική συμβολοσειρά. Ολα αξίες υποβάλλονται σε επέκταση tilde, παράμετροι και μεταβλητή επέκταση, αντικατάσταση εντολών, αριθμητική επέκταση και αφαίρεση από την παραπομπή. Αν η μεταβλητή έχειακέραιος αριθμός σύνολο χαρακτηριστικών, τότε αξία υπόκειται σε αριθμητική επέκταση ακόμα και αν δεν χρησιμοποιείται η επέκταση $ ((…)). Ο διαχωρισμός λέξεων δεν εκτελείται, με την εξαίρεση του'$@' όπως εξηγείται στο σημείοΕιδικές παράμετροι. Η επέκταση του ονόματος διαδρομής δεν εκτελείται. Οι δηλώσεις αντιστοίχισης μπορούν επίσης να εμφανίζονται ως επιχειρήματα στοδηλώνω, τύπος, εξαγωγή, μόνο για ανάγνωση, και τοπικός ενσωματωμένες εντολές. ΕΝΑ παραμέτρου θέσης είναι μια παράμετρος που υποδηλώνεται με ένα ή περισσότερα ψηφία, εκτός από τον μονοψήφιο αριθμό 0. Οι παραμέτρους θέσης εκχωρούνται από τα επιχειρήματα του κελύφους κατά την κλήση και μπορούν να εκχωρηθούν εκ νέου χρησιμοποιώντας τοσειρά ενσωματωμένη εντολή. Οι παραμέτρους θέσης μπορεί να μην εκχωρηθούν με δηλώσεις αντιστοίχισης. Οι παράμετροι θέσης αντικαθίστανται προσωρινά όταν εκτελείται μια λειτουργία κελύφους. Όταν επεκτείνεται μια παράμετρος θέσης που αποτελείται από περισσότερα από ένα μόνο ψηφίο, πρέπει να περικλείεται σε τιράντες. Το κέλυφος αντιμετωπίζει μερικές παραμέτρους ειδικά. Αυτές οι παράμετροι μπορούν να αναφέρονται μόνο. η ανάθεση σε αυτά δεν επιτρέπεται. Οι ακόλουθες μεταβλητές ορίζονται από το κέλυφος: ΚΤΥΠΩ ΔΥΝΑΤΑ: Επέκταση στο πλήρες όνομα αρχείου που χρησιμοποιείται για την κλήση αυτής της παρουσίας τουκτυπώ δυνατά. BASH_VERSINFO: Μία μεταβλητή πινάκων ανάγνωσης των οποίων τα μέλη διαθέτουν πληροφορίες έκδοσης για αυτήν την περίπτωση του κτυπώ δυνατά. Οι τιμές που αποδίδονται στα μέλη του πίνακα είναι οι εξής: BASH_VERSION: Επεκτείνεται σε μια συμβολοσειρά που περιγράφει την έκδοση αυτής της στιγμήςκτυπώ δυνατά. COMP_CWORD: Ένας δείκτης σε$ {COMP_WORDS} της λέξης που περιέχει την τρέχουσα θέση δρομέα. Αυτή η μεταβλητή είναι διαθέσιμη μόνο σε λειτουργίες κελύφους που χρησιμοποιούνται από τις προγραμματιζόμενες εγκαταστάσεις ολοκλήρωσης. COMP_LINE: Η τρέχουσα γραμμή εντολών. Αυτή η μεταβλητή είναι διαθέσιμη μόνο στις λειτουργίες κελύφους και τις εξωτερικές εντολές που επικαλούνται οι προγραμματιζόμενες εγκαταστάσεις ολοκλήρωσης. COMP_POINT: Ο δείκτης της τρέχουσας θέσης δρομέα σε σχέση με την αρχή της τρέχουσας εντολής. Εάν η τρέχουσα θέση δρομέα βρίσκεται στο τέλος της τρέχουσας εντολής, η τιμή αυτής της μεταβλητής είναι ίση με$ {# COMP_LINE}. Αυτή η μεταβλητή είναι διαθέσιμη μόνο στις λειτουργίες κελύφους και τις εξωτερικές εντολές που επικαλούνται οι προγραμματιζόμενες εγκαταστάσεις ολοκλήρωσης. COMP_WORDS: Μεταβλητή πίνακα που αποτελείται από τις μεμονωμένες λέξεις στην τρέχουσα γραμμή εντολών. Αυτή η μεταβλητή είναι διαθέσιμη μόνο σε λειτουργίες κελύφους που χρησιμοποιούνται από τις προγραμματιζόμενες εγκαταστάσεις ολοκλήρωσης. DIRSTACK: Μεταβλητή πίνακα που περιέχει τα τρέχοντα περιεχόμενα της στοίβας καταλόγων. Οι κατάλογοι εμφανίζονται στη στοίβα με τη σειρά που εμφανίζονται από τοdirs ενσωματωμένο. Αντιστοίχιση στα μέλη αυτής της μεταβλητής πίνακα μπορεί να χρησιμοποιηθεί για να τροποποιήσει τους καταλόγους που βρίσκονται ήδη στη στοίβα, αλλά τοpushd καιpopd οι ενσωματωμένες συσκευές πρέπει να χρησιμοποιούνται για την προσθήκη και την αφαίρεση καταλόγων. Η εκχώρηση σε αυτήν τη μεταβλητή δεν θα αλλάξει τον τρέχοντα κατάλογο. ΑνDIRSTACK είναι απενεργοποιημένη, χάνει τις ειδικές ιδιότητές της, ακόμα και αν επανεκκινήσει στη συνέχεια. EUID: Αναπτύσσεται στο ενεργό αναγνωριστικό χρήστη του τρέχοντος χρήστη, που αρχικοποιήθηκε κατά την εκκίνηση του κελύφους. Αυτή η μεταβλητή είναι readonly. FUNCNAME: Το όνομα οποιασδήποτε τρέχουσας λειτουργίας κελύφους εκτέλεσης. Αυτή η μεταβλητή υπάρχει μόνο όταν εκτελείται μια λειτουργία κελύφους. Αναθέσεις σεFUNCNAME δεν έχουν απ
Ορισμοί
Δεσμευμένες λέξεις
Shell Γραμματική: Απλές εντολές
Αγωγούς
Τόπος αγώνων
Σύνθετες εντολές
Σχόλια
Αναφορά
Παράμετροι
Παράμετροι θέσης
Ειδικές παράμετροι
Shell Μεταβλητές