341. Παρουσίαση των Windows 10 ! Όλες οι βασικές λειτουργίες !
Πίνακας περιεχομένων:
- Δήλωση λειτουργιών μπάσου
- Μεταβλητές Πεδίο εφαρμογής
- Επιστροφή Τιμών
- Μεταβιβάζοντας τα Arguments σε Bash Λειτουργίες
- συμπέρασμα
Μια λειτουργία Bash είναι ουσιαστικά ένα σύνολο εντολών που μπορούν να καλούνται πολλές φορές. Ο σκοπός μιας συνάρτησης είναι να σας βοηθήσει να κάνετε τα scripts του bash πιο ευανάγνωστα και να αποφύγετε να γράφετε τον ίδιο κώδικα ξανά και ξανά.
Σε σύγκριση με τις περισσότερες γλώσσες προγραμματισμού, οι λειτουργίες Bash είναι κάπως περιορισμένες. Σε αυτό το σεμινάριο, θα καλύψουμε τις βασικές λειτουργίες του Bash και θα σας δείξουμε πώς να τις χρησιμοποιήσετε στα σελιδοδείκτες του κελύφους σας.
Δήλωση λειτουργιών μπάσου
Η σύνταξη για τη δήλωση μιας λειτουργίας bash είναι πολύ απλή. Μπορούν να δηλωθούν σε δύο διαφορετικές μορφές:
-
Η πρώτη μορφή αρχίζει με το όνομα της λειτουργίας, ακολουθούμενο από παρενθέσεις. Αυτή είναι η προτιμώμενη και πιο χρησιμοποιούμενη μορφή.
function_name () { commands }Έκδοση μιας γραμμής:
function_name () { commands; }Η δεύτερη μορφή αρχίζει με τη λέξη κλεισμένη
functionακολουθεί το όνομα της λειτουργίας.function function_name { commands }Έκδοση μιας γραμμής:
function function_name { commands; }
Λίγα σημεία που πρέπει να σημειωθούν:
- Η λίστα εντολών μεταξύ των σγουράδων
{}είναι το σώμα της λειτουργίας. Τα σγουράκια που περιβάλλουν το σώμα λειτουργίας πρέπει να διαχωρίζονται από το σώμα από διαστήματα ή νέες γραμμές. Η οριστικοποίηση μιας λειτουργίας δεν εκτελεί. Για να καλέσετε μια λειτουργία bash, απλά χρησιμοποιήστε το όνομα της λειτουργίας. Οι εντολές μεταξύ των σγουρών άγγιγμα εκτελούνται κάθε φορά που η λειτουργία καλείται στο script κέλυφος.Ο ορισμός της λειτουργίας πρέπει να τοποθετηθεί πριν από οποιεσδήποτε κλήσεις προς τη λειτουργία.Όταν χρησιμοποιείτε ενιαία γραμμή "συμπιεσμένο" λειτουργίες, ένα ερωτηματικό;πρέπει να ακολουθήσετε την τελευταία εντολή στη λειτουργία.Θα πρέπει πάντα να προσπαθήσετε να διατηρήσετε τα ονόματα των λειτουργιών σας περιγραφικά.
Για να το καταλάβετε καλύτερα, ρίξτε μια ματιά στο παρακάτω παράδειγμα:
~ / hello_world.sh
#!/bin/bash hello_world () { echo 'hello, world' } hello_world
Ας αναλύσουμε την γραμμή κώδικα κατά γραμμή:
- Στη γραμμή
3ορίζουμε τη λειτουργία δίνοντάς της ένα όνομα και ανοίγοντας το σγουρό ζεύγος{που σηματοδοτεί την έναρξη του σώματος της λειτουργίας. Η γραμμή4είναι το σώμα της λειτουργίας. Το σώμα των λειτουργιών μπορεί να περιέχει πολλαπλές εντολές και μεταβλητές δηλώσεις. Η γραμμή5, ηhello_worldαγκύλη συγκράτησης}, ορίζει το τέλος της συνάρτησηςhello_worldγραμμή7εκτελούμε τη λειτουργία. Μπορείτε να εκτελέσετε τη λειτουργία όσες φορές χρειάζεστε.
Εάν εκτελέσετε το σενάριο, θα εκτυπώσει
hello, world
.
Μεταβλητές Πεδίο εφαρμογής
Οι γενικές μεταβλητές είναι μεταβλητές στις οποίες μπορείτε να έχετε πρόσβαση από οποιοδήποτε σημείο της δέσμης ενεργειών ανεξάρτητα από το πεδίο εφαρμογής. Στο Bash, όλες οι μεταβλητές από προεπιλογή ορίζονται ως σφαιρικές, ακόμα και αν δηλωθούν στη λειτουργία.
Οι τοπικές μεταβλητές μπορούν να δηλωθούν στο σώμα λειτουργιών με την
local
λέξη-κλειδί και μπορούν να χρησιμοποιηθούν μόνο μέσα σε αυτή τη λειτουργία. Μπορείτε να έχετε τοπικές μεταβλητές με το ίδιο όνομα σε διαφορετικές λειτουργίες.
Για να δείξουμε καλύτερα πώς λειτουργεί το πεδίο μεταβλητών στο Bash, ας εξετάσουμε ένα παράδειγμα:
~ / variables_scope.sh
#!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Inside function: var1: $var1, var2: $var2" } echo "Before executing function: var1: $var1, var2: $var2" my_function echo "After executing function: var1: $var1, var2: $var2"
Το σενάριο αρχίζει με τον ορισμό δύο παγκόσμιων μεταβλητών
var1
και
var2
. Στη συνέχεια, μια συνάρτηση που θέτει μια τοπική μεταβλητή
var1
και τροποποιεί την παγκόσμια μεταβλητή
var2
.
Before executing function: var1: A, var2: B Inside function: var1: C, var2: D After executing function: var1: A, var2: D
Από την παραπάνω έξοδο μπορούμε να συμπεράνουμε ότι:
- Αν ορίσετε μια τοπική μεταβλητή μέσα στο σώμα των λειτουργιών με το ίδιο όνομα με μια υπάρχουσα μεταβλητή, θα έχει προτεραιότητα έναντι της συνολικής μεταβλητής. Οι γενικές μεταβλητές μπορούν να αλλάξουν μέσα από τη λειτουργία.
Επιστροφή Τιμών
Σε αντίθεση με τις λειτουργίες σε "πραγματικές" γλώσσες προγραμματισμού, οι λειτουργίες Bash δεν σας επιτρέπουν να επαναφέρετε μια τιμή όταν καλείτε. Όταν ολοκληρωθεί μια λειτουργία bash, η τιμή επιστροφής είναι η κατάσταση της τελευταίας εντολής που εκτελέστηκε στη συνάρτηση,
0
για επιτυχία και μη μηδενικό δεκαδικό αριθμό στην περιοχή 1 - 255 για αποτυχία.
Η κατάσταση επιστροφής μπορεί να καθοριστεί με τη χρήση της λέξης
return
και έχει εκχωρηθεί στη μεταβλητή
$?
. Η δήλωση
return
τερματίζει τη λειτουργία. Μπορείτε να το θεωρήσετε ως την κατάσταση εξόδου της λειτουργίας.
#!/bin/bash my_function () { echo "some result" return 55 } my_function echo $?
some result 55
Για να επιστρέψουμε πραγματικά μια αυθαίρετη τιμή από μια συνάρτηση, πρέπει να χρησιμοποιήσουμε άλλες μεθόδους. Η πιο απλή επιλογή είναι να εκχωρήσετε το αποτέλεσμα της συνάρτησης σε μια μεταβλητή:
~ / return_values.sh
#!/bin/bash my_function () { func_result="some result" } my_function echo $func_result
some result
Μια άλλη, καλύτερη επιλογή για να επιστρέψετε μια τιμή από μια συνάρτηση είναι να στείλετε την τιμή στο
stdout
χρησιμοποιώντας echo ή
printf
όπως φαίνεται παρακάτω:
#!/bin/bash my_function () { local func_result="some result" echo "$func_result" } func_result="$(my_function)" echo $func_result
some result
Αντί να εκτελέσουμε απλώς τη συνάρτηση που θα εκτυπώσει το μήνυμα στο stdout, αναθέτουμε την έξοδο της λειτουργίας στη μεταβλητή
func_result
χρησιμοποιώντας την υποκατάσταση εντολής
$()
. Η μεταβλητή μπορεί αργότερα να χρησιμοποιηθεί όπως απαιτείται.
Μεταβιβάζοντας τα Arguments σε Bash Λειτουργίες
Για να περάσετε οποιοδήποτε αριθμό επιχειρημάτων στη λειτουργία bash, απλά βάλτε τα αμέσως μετά το όνομα της λειτουργίας, χωρισμένο με ένα κενό. Είναι καλή πρακτική η διπλή αναφορά των επιχειρημάτων για να αποφευχθεί η παρανόηση ενός επιχειρήματος με τους κενόμενους χώρους.
- Οι παραμέτρους που πέρασαν είναι
$1,$2,$3…$n, που αντιστοιχούν στη θέση της παραμέτρου μετά το όνομα της συνάρτησης. Η μεταβλητή$0προορίζεται για το όνομα της συνάρτησης. Η μεταβλητή$#περιέχει τον αριθμό παραμέτρων θέσης / Οι μεταβλητές$*και$@κατέχουν όλες τις παραμέτρους θέσης / τα επιχειρήματα που έχουν μεταβιβαστεί στη συνάρτηση.- Όταν το διπλό αναφέρει, το
"$*"επεκτείνεται σε μια ενιαία σειρά που χωρίζεται από το διάστημα (ο πρώτος χαρακτήρας του IFS) -"$1 $2 $n"."$1" "$2" "$n".Όταν δεν αναφέρονται διπλά, τα$*και$@είναι τα ίδια.
- Όταν το διπλό αναφέρει, το
Ακολουθεί ένα παράδειγμα:
~ / passing_arguments.sh
#!/bin/bash greeting () { echo "Hello $1" } greeting "Joe"
συμπέρασμα
Μια λειτουργία Bash είναι ένα μπλοκ επαναχρησιμοποιήσιμου κώδικα σχεδιασμένο για να εκτελέσει μια συγκεκριμένη λειτουργία. Μόλις καθοριστεί, η λειτουργία μπορεί να καλείται πολλές φορές μέσα σε ένα σενάριο.
Μπορεί επίσης να θέλετε να διαβάσετε σχετικά με τον τρόπο χρήσης μιας λειτουργίας Bash για να δημιουργήσετε μια εντολή συντόμευσης για μια μεγαλύτερη εντολή.
bash terminalΗ Impinj αναμένει ότι η συμφωνία θα της επιτρέψει να απευθυνθεί σε μια ευρύτερη αγορά, δηλαδή στην αγορά φορητών και κινητών συσκευών αναγνώρισης ραδιοσυχνοτήτων (RFID). Αυτό οφείλεται στο γεγονός ότι η εταιρεία θα είναι σε θέση να πουλήσει μάρκες που περιλαμβάνουν τις περισσότερες από τις λειτουργίες που απαιτούνται για ένα ραδιόφωνο αναγνώστη, επιτρέποντας στους προγραμματιστές να κατασκευάσουν συσκευές μικρού μεγέθους.
Η επιχείρηση RFID της Intel, μέρος του Incubator της New Business Initiative, Τσιπ αναγνώστη RFID. Το τσιπ έχει χρησιμοποιηθεί σε διάφορους τύπους παραγόντων και σε διαφορετικές αγορές, όπως η διαχείριση της αλυσίδας εφοδιασμού, η παρακολούθηση περιουσιακών στοιχείων και η εξακρίβωση της ταυτότητας.
Το IPhone 2.0 φέρνει τις λειτουργίες Enterprise
Η τελευταία ενημέρωση του λειτουργικού συστήματος IPhone καθιστά τη συσκευή χρήσιμη σε επιχειρήσεις προσθέτοντας καλύτερες δικτυακές επιλογές ασφαλείας και παγκόσμια προφίλ διαμόρφωσης. Το iPhone 3G έχει πάρει όλη την προσοχή σήμερα, με γραμμές περιτυλίγματος γύρω από το μπλοκ στα καταστήματα Apple και τα καταστήματα κινητής τηλεφωνίας παγκοσμίως. Αλλά το iPhone 2.0, το λογισμικό που περιλαμβάνεται στο iPhone 3G και διατίθεται χωρίς κόστος για τους ιδιοκτήτες του πρώτου μοντέλου iPhone, δεν πρέπ
Το Fire Eagle, το οποίο συζητήθηκε για πρώτη φορά από το Yahoo πέρυσι, είναι μια υπηρεσία που οι χρήστες του Διαδικτύου μπορούν να χρησιμοποιήσουν για να ενημερώσουν τις πληροφορίες θέσης τους και να μοιραστούν αυτές τις πληροφορίες με εφαρμογές που βασίζονται στο Web επιλέγοντας. Είναι κατασκευασμένο σε μια ανοιχτή πλατφόρμα, έτσι ώστε οι προγραμματιστές εφαρμογών να μπορούν να αξιοποιήσουν τις πληροφορίες για να προσθέσουν στις υπηρεσίες τους λειτουργίες που αφορούν την τοποθέτηση.
Ο κινητός τύπος, για παράδειγμα, έχει δημιουργήσει ένα Plug-in Fire Eagle που εμφανίζει τις θέσεις των χρηστών στα blogs τους , που ενημερώνει αυτόματα τις πληροφορίες κάθε φορά που οι χρήστες ανοικοδομούν τους ιστότοπούς τους.







