Ένας γρήγορος οδηγός για το πώς να δημιουργήσετε και να καλέσετε λειτουργίες στο Bash.
Η συνάρτηση είναι ένα μπλοκ επαναχρησιμοποιήσιμου κώδικα που χρησιμοποιείται για να εκτελέσει κάποια ενέργεια. Με τις λειτουργίες, έχουμε καλύτερη αρθρωτότητα και υψηλό βαθμό επαναχρησιμοποίησης κώδικα.
Το Bash παρέχει μερικές ενσωματωμένες λειτουργίες όπως echo
και read
, αλλά μπορούμε επίσης να δημιουργήσουμε τις δικές μας λειτουργίες.
Υπάρχουν δύο τρόποι για να δημιουργήσουμε συναρτήσεις στο Bash:
Ένας τρόπος είναι να χρησιμοποιήσετε απλώς το όνομα της συνάρτησης, π.χ.
functionName(){ // scope of function }
Συμπαγής έκδοση:
functionName(){ echo 'hello'; }
Ένας άλλος τρόπος είναι να δηλώσετε μια συνάρτηση χρησιμοποιώντας το function
λέξη-κλειδί:
function functionName { // scope of function }
Συμπαγής έκδοση:
function functionName { echo 'hello'; }
Παρατηρήστε πως δεν χρειαζόμαστε το ()
όταν χρησιμοποιείτε το function
λέξη-κλειδί για να δημιουργήσετε μια συνάρτηση.
Σημαντικά σημεία που πρέπει να σημειώσετε σχετικά με τις λειτουργίες Bash:
{}
είναι το σώμα λειτουργίας και το πεδίο εφαρμογής;
Παράδειγμα:
Ο παρακάτω κώδικας δημιουργεί μια λειτουργία που εκτυπώνει το 'Hello World' στην κονσόλα. Το όνομα της συνάρτησης καλείται εκτύπωση Γεια :
#!/bin/bash printHello(){
echo 'Hello World!' }
Πώς ονομάζουμε την παραπάνω συνάρτηση; Το μόνο που χρειάζεται να κάνετε στο bash script σας είναι να γράψετε το όνομα της συνάρτησης και θα κληθεί.
Για παράδειγμα:
#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello
Παραγωγή:
'Hello World'
Η παραπάνω συνάρτηση printHello()
δεν έχει παραμέτρους Οποτεδήποτε το ονομάζουμε, έχουμε την έξοδο 'Hello World'. Τι γίνεται όμως αν θέλουμε να δημιουργήσουμε μια πιο γενική λειτουργία; Για παράδειγμα μπορούμε να καλέσουμε τη συνάρτηση με κάποιο όρισμα και θα εκτυπώσει ό, τι στέλνουμε σε αυτήν.
Υπάρχουν δύο τρόποι για να το κάνετε αυτό.
Πρώτα μπορούμε να τροποποιήσουμε το printHello()
συνάρτηση για να εκτυπώσετε τα ορίσματα που διαβιβάζονται σε αυτό:
Για παράδειγμα:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!
Παραγωγή:
Hello World Hello DevQA Hello I
Παρατηρήστε πώς η τρίτη δήλωση εκτύπωσης printAny I love coding!
μόνο το 'Γεια σου, εγώ'.
Αυτό οφείλεται στο γεγονός ότι η λειτουργία μας έχει σχεδιαστεί για να λαμβάνει μόνο 1 παράμετρο $1
. Η λέξη 'Λατρεύω την κωδικοποίηση!' είναι στην πραγματικότητα 3 παράμετροι.
Εάν θέλαμε να τα εκτυπώσουμε όλα, θα χρειαζόταν να τοποθετήσουμε εισαγωγικά γύρω από το κείμενο
Για παράδειγμα:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'
Παραγωγή:
Hello I love coding
Ένα άλλο παράδειγμα, μπορούμε να περάσουμε και σε ψηφία:
#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2
Παραγωγή:
Result is: 3
Οι λειτουργίες Bash μπορούν επίσης να επιστρέψουν τιμές.
Για παράδειγμα:
#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result
Παραγωγή:
The sum is: 3
Ένας άλλος τρόπος για να επιστρέψετε τιμές από μια συνάρτηση είναι να αντιστοιχίσετε το αποτέλεσμα σε μια μεταβλητή που μπορεί να χρησιμοποιηθεί όπως και όταν χρειάζεται.
Για παράδειγμα:
#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result
Παραγωγή:
The sum is: 3