Bash Scripting Tutorial για αρχάριους

Bash Scripting Tutorial



Η προεπιλεγμένη γλώσσα εντολών του Linux είναι το Bash script. Πρέπει να τρέχουμε πολλές εντολές στο Linux σε καθημερινή βάση για πολλούς σκοπούς. Αυτές οι καθημερινές εργασίες μπορούν να αυτοματοποιηθούν χρησιμοποιώντας ένα σενάριο bash. Οποιοσδήποτε χρήστης μπορεί να μάθει αυτήν τη γλώσσα δέσμης ενεργειών πολύ εύκολα και γρήγορα. Εάν είστε νέοι στον προγραμματισμό bash τότε αυτό το σεμινάριο είναι για εσάς.

Περιεχόμενα:

  1. Σχόλια
  2. echo Command
  3. Μεταβλητές
  4. Υπό όρους δήλωση
  5. Βρόχοι
  6. Λειτουργίες
  7. Κλήση προγραμμάτων σε σενάριο
  8. Δημιουργία μενού
  9. Επεξεργασία γραμμής εντολών
  10. Αριθμητική
  11. Χειρισμός χορδών
  12. Επιστροφή κωδικών επιστροφής από ένα σενάριο και σύλληψη σε άλλο σενάριο
  13. Ανάγνωση και εγγραφή σε αρχεία
  14. Σωλήνες

Σχόλια

Η προσθήκη σχολίων με τον κώδικα είναι απαραίτητο μέρος κάθε γλώσσας προγραμματισμού. Τα σχόλια δεν αναλύονται με το σενάριο κατά τη στιγμή της εκτέλεσης. Ο αναγνώστης μπορεί να κατανοήσει σωστά οποιονδήποτε κώδικα εάν ο κώδικας σχολιάζεται καλά. Μπορείτε να προσθέσετε ένα σχόλιο με πολλούς τρόπους σε σενάριο bash. Ο τρόπος με τον οποίο μπορείτε να προσθέσετε σχόλια μιας γραμμής και πολλαπλών γραμμών σε ένα σενάριο bash εμφανίζεται σε αυτό το μέρος. Δημιουργήστε ένα αρχείο bash με το παρακάτω σενάριο για να γνωρίζετε τη χρήση του σχολίου bash. Εδώ, το σύμβολο '#' χρησιμοποιείται για την προσθήκη σχολίου μιας γραμμής και ένα απόσπασμα (') με': 'χρησιμοποιείται για την προσθήκη σχολίων πολλαπλών γραμμών.







bash_comment.sh



#!/bin/bash
#Λάβετε έναν αριθμό ως είσοδο
πέταξε έξω 'Εισαγάγετε έναν αριθμό'
ανάγνωσηπρος το
:'
Ελέγξτε τον αριθμό εισόδου είναι
λιγότερο από 10 ή μεγαλύτερο από 10 ή ίσο με 10
'

αν [[ $ α -lt 10 ]]
τότε
πέταξε έξω 'Ο αριθμός είναι μικρότερος από 10'
elif [[ $ α -γτ 10 ]]
τότε
πέταξε έξω 'Ο αριθμός είναι μεγαλύτερος από 10'
αλλού
πέταξε έξω 'Ο αριθμός είναι ίσος με 10'
είναι

Παραγωγή:



Εκτελέστε το σενάριο.





$κτυπώ δυνατάbash_comment.sh

Εδώ, το σενάριο εκτελείται τρεις φορές με την τιμή εισόδου 3, 10 και 90. Θα εμφανιστεί η ακόλουθη έξοδος.



Αν θέλετε να μάθετε περισσότερα σχετικά με το σχολιασμό bash, μπορείτε να το ελέγξετε αυτό το σεμινάριο Το

Μεταβείτε στην κορυφή

εντολή ηχώ

Η εντολή `echo` χρησιμοποιείται στο bash για εκτύπωση εξόδου στο τερματικό. Διάφορες επιλογές μπορούν να χρησιμοποιηθούν με την εντολή echo στο bash για να εκτυπώσετε την έξοδο με διαφορετικούς τρόπους. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να γνωρίζετε τις δύο απλές χρήσεις της εντολής `echo`. Εδώ, η πρώτη εντολή `echo` θα εκτυπώσει απλά δεδομένα κειμένου με νέα γραμμή και η δεύτερη εντολή echo θα εκτυπώσει ένα απλό κείμενο χωρίς νέα γραμμή.

echo_test.sh

#!/bin/bash
#Εκτυπώστε το πρώτο κείμενο
πέταξε έξω 'Εκτύπωση κειμένου με νέα γραμμή'
#Εκτυπώστε το δεύτερο κείμενο
πέταξε έξω 'Εκτύπωση κειμένου χωρίς νέα γραμμή'

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάecho_test.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση της παραπάνω εντολής.

Υπάρχουν πολλές άλλες χρήσεις της εντολής `echo` στο bash. Μπορείτε να ελέγξετε αυτό το σεμινάριο για να μάθετε περισσότερα σχετικά με την εντολή `echo`.

Μεταβείτε στην κορυφή

Μεταβλητές

Η δήλωση μεταβλητής είναι απαραίτητο μέρος οποιασδήποτε γλώσσας προγραμματισμού. Οι μεταβλητές Bash μπορούν να δηλωθούν με διαφορετικούς τρόπους. Όταν μια τιμή εκχωρείται σε μια μεταβλητή, τότε δεν χρησιμοποιείται σύμβολο στην αρχή της μεταβλητής. Το σύμβολο '$' χρησιμοποιείται με το όνομα της μεταβλητής κατά την ανάγνωση της τιμής της μεταβλητής. Η μεταβλητή μπορεί να χρησιμοποιηθεί από το τερματικό ή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε σενάριο bash.

Οι ακόλουθες εντολές θα δηλώσουν μια μεταβλητή συμβολοσειράς με όνομα mystr με μια συγκεκριμένη τιμή και στη συνέχεια εκτυπώστε την τιμή της μεταβλητής στο τερματικό.

$mystr='Μου αρέσει ο προγραμματισμός bash'
$πέταξε έξω $ mystr

Παραγωγή:

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο. Δύο μεταβλητές δηλώνονται εδώ. Αυτά είναι $ α και $ β Το Εάν η τιμή εισόδου που είναι αποθηκευμένη στο $ α είναι ίσο με $ β μετά το μήνυμα, Οι αριθμοί είναι ίσοι θα εκτυπωθεί διαφορετικά Οι αριθμοί δεν είναι ίσοι θα τυπωθεί

var.sh

#!/bin/bash
πέταξε έξω 'Εισαγάγετε έναν αριθμό'
ανάγνωσηπρος το
σι=100
αν [[ $ α -ισοδύναμο $ β ]]
τότε
πέταξε έξω «Οι αριθμοί είναι ίσοι»
αλλού
πέταξε έξω «Οι αριθμοί δεν είναι ίσοι»
είναι

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάvar.sh

Η παραπάνω εντολή εκτελείται δύο φορές με την τιμή 56 και 100. Θα εμφανιστεί η ακόλουθη έξοδος.

Αν θέλετε να μάθετε περισσότερα σχετικά με τις μεταβλητές bash, μπορείτε να το ελέγξετε αυτό το σεμινάριο Το

Μεταβείτε στην κορυφή

Υπό όρους δήλωση

Όπως και μια άλλη γλώσσα προγραμματισμού, μπορείτε να χρησιμοποιήσετε την κατάσταση υπό όρους στο bash. ' Αν-τότε-αλλιώς ' και ' υπόθεση Οι δηλώσεις χρησιμοποιούνται κυρίως για την εφαρμογή των δηλώσεων συνθηκών σε οποιαδήποτε γλώσσα προγραμματισμού. Η χρήση της δήλωσης υπό όρους με τη χρήση 'αν' δήλωση εμφανίζεται σε αυτήν την ενότητα αυτού του σεμιναρίου. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο όπου χρησιμοποιείται η δήλωση υπό όρους. Εδώ, δύο τιμές θα ληφθούν από τον χρήστη ως είσοδο και θα αποθηκευτούν στις μεταβλητές, κωδικός $ , και $ ηλικία Το Η δήλωση 'εάν' χρησιμοποιείται για τον έλεγχο της τιμής του $ ηλικία είναι μεγαλύτερη ή ίση με 18 και η αξία του κωδικός $ είναι 1100 Το Εάν ισχύουν και οι δύο συνθήκες τότε το μήνυμα, Έχετε δικαίωμα να δείτε την ταινία θα εκτυπωθεί διαφορετικά Δεν δικαιούστε να δείτε την ταινία θα τυπωθεί

cond.sh

#!/bin/bash

πέταξε έξω 'Εισάγετε τον κωδικό σας'
ανάγνωσηκώδικας
πέταξε έξω 'Εισάγετε την ηλικία σας'
ανάγνωσηηλικία

αν [[ $ ηλικία -δίνω 18 && κωδικός $ -ισοδύναμο '1100' ]]
τότε
πέταξε έξω «Έχετε δικαίωμα να δείτε την ταινία»
αλλού
πέταξε έξω 'Δεν δικαιούστε να δείτε την ταινία'
είναι

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάcond.sh

Η ακόλουθη έξοδος θα εμφανιστεί αφού λάβετε διαφορετικές τιμές εισόδου. Το 1100 δίνεται ως κωδικός και το 5 ως ηλικία για την πρώτη εκτέλεση και εάν η συνθήκη επιστρέψει false για αυτές τις τιμές. Το 1100 δίνεται ως κωδικός και το 45 ως ηλικία για τη δεύτερη εκτέλεση που επιστρέφει true για τη συνθήκη if.

Εάν θέλετε να μάθετε περισσότερα σχετικά με τη δήλωση υπό όρους bash, μπορείτε να ελέγξετε αυτό το σεμινάριο.

Μεταβείτε στην κορυφή

Βρόχοι

Όταν ορισμένα μέρη του σεναρίου πρέπει να εκτελεστούν πολλές φορές, τότε ο βρόχος χρησιμοποιείται για την εκτέλεση της εργασίας. Το Bash υποστηρίζει τρεις τύπους δήλωσης βρόχων όπως άλλες γλώσσες. Αυτά είναι για, ενώ και μέχρι βρόχους. Με βάση τις απαιτήσεις προγραμματισμού, χρησιμοποιείται ένας συγκεκριμένος βρόχος στο σενάριο. Οι χρήσεις αυτών των τριών τύπων βρόχων παρουσιάζονται σε αυτήν την ενότητα χρησιμοποιώντας απλά παραδείγματα.

Χρήση για βρόχο

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο όπου ` για ` Ο βρόχος χρησιμοποιείται για επανάληψη. `για` Ο βρόχος χρησιμοποιείται κυρίως για επανάληψη λίστας δεδομένων ή πίνακα. Εδώ, χρησιμοποιείται μια λίστα με το όνομα της καθημερινής και κάθε όνομα της καθημερινής επαναλαμβάνεται χρησιμοποιώντας το βρόχο. `αν` Η δήλωση χρησιμοποιείται για την εκτύπωση ενός συγκεκριμένου μηνύματος με βάση το όνομα της ημέρας της εβδομάδας.

για.σ

#Διαβάστε το όνομα της καθημερινής σε κάθε επανάληψη του βρόχου
ΓιαημέρασεΔευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή Σάββατο Κυριακή
κάνω

#Ελέγξτε το όνομα της καθημερινής είναι Δευτέρα ή Πέμπτη
αν [[ $ ημέρα=='Δευτέρα' || $ ημέρα=='Πέμπτη' ]]
τότε
πέταξε έξω «Συνάντηση στις$ ημέραστις 9:30 π.

#Ελέγξτε το όνομα της καθημερινής είναι Τρίτη ή Τετάρτη ή Παρασκευή
elif [[ $ ημέρα=='Τρίτη' || $ ημέρα=='Τετάρτη' || $ ημέρα=='Παρασκευή' ]]
τότε
πέταξε έξω «Εκπαίδευση στις$ ημέραστις 11:00 π.
αλλού

#Εκτύπωση «Διακοπές» για άλλες ημέρες
πέταξε έξω '$ ημέραείναι διακοπές »
είναι
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάγια.σ

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Αν θέλετε να μάθετε περισσότερα για το bash for loop, μπορείτε να ελέγξετε αυτό το σεμινάριο.

Χρήση του βρόχου while

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο όπου ` ενώ ` Ο βρόχος χρησιμοποιείται για επανάληψη. Αυτό το σενάριο θα εκτυπώσει αυτούς τους αριθμούς από το 1 έως το 20 που είναι άρτιοι και διαιρούνται με το 5. Εδώ, $ μετρητής η μεταβλητή χρησιμοποιείται για τον έλεγχο της επανάληψης του βρόχου και η τιμή αυτής της μεταβλητής αυξάνεται κατά 1 σε κάθε επανάληψη. Πότε `αν` η συνθήκη θα επιστρέψει true τότε θα εκτυπώσει την τιμή του $ μετρητής Το

#!/bin/bash

#Εκτύπωσε το μήνυμα
πέταξε έξω «Εκτυπώστε τους αριθμούς που είναι άρτιοι και διαιρούμενοι με το 5»

#Αρχικοποιήστε τον πάγκο
μετρητής=1

#Επαναλάβετε το βρόχο έως ότου η τιμή του μετρητή $ είναι μικρότερη ή ίση με 20
ενώ [ $ μετρητής -ο είκοσι ]
κάνω

#Ελέγξτε ότι ο μετρητής $ διαιρείται με 2 και 5
αν [[ $ μετρητής%2-ισοδύναμο 0 && $ μετρητής%5-ισοδύναμο 0 ]]
τότε
#Εκτύπωση μετρητή $ χωρίς νέα γραμμή
πέταξε έξω '$ μετρητής'
είναι

#Αύξηση μετρητή $ κατά 1
((μετρητής ++))
Έγινε
πέταξε έξω 'Εγινε'

Παραγωγή:

$κτυπώ δυνατάενώ.σ

Υπάρχουν μόνο αριθμοί εντός 1-20 που είναι ζυγοί και διαιρούνται με το 5. Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Αν θέλετε να μάθετε περισσότερα για το bash ` ενώ ` βρόχο τότε μπορείτε να ελέγξετε αυτό το σεμινάριο Το

Χρησιμοποιείται μέχρι βρόχου

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο όπου ` μέχρι` Ο βρόχος χρησιμοποιείται για επανάληψη. Αυτό το σενάριο θα εκτυπώσει όλους τους περιττούς αριθμούς από 0 έως 20. $ n μεταβλητή χρησιμοποιείται σε αυτό το σενάριο για να επαναλάβει τον βρόχο.

μέχρι.σ

#!/bin/bash

#Αρχικοποιήστε τη μεταβλητή, n
ν=είκοσι

#Επαναλάβετε το βρόχο έως ότου η τιμή $ n είναι μεγαλύτερη από 0
μέχρι [ $ n -lt 0 ]
κάνω

#Ελέγξτε ότι η τιμή του n είναι περιττή
αν [[ $ n%2-γτ 0 ]]
τότε
πέταξε έξω $ n
είναι

#Αυξήστε την τιμή του n κατά 1
((ν=$ n-1))
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάμέχρι.σ

Το σενάριο θα εκτυπώσει όλους τους ζυγούς αριθμούς από 20 έως 1. Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μεταβείτε στην κορυφή

Λειτουργίες

Όταν ένα μπλοκ κώδικα πρέπει να εκτελεστεί πολλές φορές σε ένα σενάριο, τότε η συνάρτηση χρησιμοποιείται για την εκτέλεση της εργασίας. Θα χρειαστεί να καλέσετε τη συνάρτηση με το όνομα μόνο όταν το σενάριο που ορίζεται στη συνάρτηση πρέπει να εκτελεστεί πολλές φορές αντί να προσθέσετε το ίδιο σενάριο πολλές φορές. Η πρώτη αγκύλη έναρξης και λήξης χρησιμοποιείται με το όνομα της συνάρτησης για να δηλώσει τη συνάρτηση στο σενάριο bash. Η συνάρτηση μπορεί να κληθεί μόνο με το όνομα της συνάρτησης στο bash. Το Bash δεν υποστηρίζει το όρισμα συνάρτησης όπως μια άλλη τυπική γλώσσα προγραμματισμού. Αλλά η τιμή μπορεί να περάσει στη λειτουργία bash με διαφορετικό τρόπο που εμφανίζεται σε αυτήν την ενότητα. Η τιμή μπορεί να επιστρέψει από τη συνάρτηση με τη δήλωση επιστροφής ή χωρίς τη χρήση της δήλωσης επιστροφής.

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να γνωρίζετε πώς μπορούν να δηλωθούν και να κληθούν οι λειτουργίες σε σενάριο bash. Τρεις συναρτήσεις δηλώνονται στο σενάριο. Η πρώτη συνάρτηση δηλώνεται ότι εκτυπώνει ένα απλό μήνυμα, Προγραμματισμός Bash για αρχάριους Το Η δεύτερη συνάρτηση δηλώνεται για να εκχωρήσει μια τιμή συμβολοσειράς σε μια μεταβλητή, $ return_str που θα εκτυπώσει, Μάθετε προγραμματισμό bash με LinuxHint αφού καλέσετε τη συνάρτηση. Η τρίτη συνάρτηση δηλώνεται ότι διαβάζει μια τιμή ορίσματος ως ακτίνα κύκλου που θα παρέχεται τη στιγμή της κλήσης της συνάρτησης. Εδώ, τοπικός χρησιμοποιείται για την ανάγνωση της τιμής του ορίσματος. Αυτή η συνάρτηση θα υπολογίσει το εμβαδόν του κύκλου με βάση την τιμή της ακτίνας χρησιμοποιώντας τον τύπο, πr2 και εκτυπώστε την υπολογιζόμενη τιμή περιοχής.

func.sh

#!/bin/bash

#Δηλώστε μια απλή λειτουργία
λειτουργίαprint_message()
{
πέταξε έξω 'Bash προγραμματισμός για αρχάριους'
}

#Δηλώστε μια συνάρτηση για να επιστρέψετε μια τιμή συμβολοσειράς
λειτουργίαret_strdata()
{
#Αρχικοποιήστε τη μεταβλητή με τιμή συμβολοσειράς
return_str=«Μάθετε προγραμματισμό bash με LinuxHint»
}

#Δηλώστε μια συνάρτηση για την ανάγνωση της τιμής του ορίσματος
λειτουργίαυπολογισμός_περιοχής()

#Διαβάστε την τιμή του ορίσματος που πέρασε
τοπικός ακτίνα κύκλου=$ 1
περιοχή= $(πέταξε έξω $ ακτίνα*$ ακτίνα*3.14

#Καλέστε τη λειτουργία για να εκτυπώσετε ένα απλό μήνυμα
print_message

#Καλέστε τη συνάρτηση που θα εκχωρήσει μια τιμή συμβολοσειράς σε μια μεταβλητή
ret_strdata

#Εκτύπωση της τιμής της μεταβλητής
πέταξε έξω $ return_str

#Διαβάστε την τιμή της ακτίνας
πέταξε έξω 'Εισαγάγετε την τιμή της ακτίνας'
ανάγνωσηεργασία

#Καλέστε τη συνάρτηση με τιμή ακτίνας
υπολογισμός_περιοχής$ rad

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάfunc.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου. Οι δύο πρώτες γραμμές θα εκτυπωθούν καλώντας τις συναρτήσεις, print_message () και ret_strdata () Το Η τελευταία γραμμή θα εκτυπωθεί καλώντας τη συνάρτηση, υπολογισμός_περιοχής () με τη ληφθείσα τιμή ακτίνας εισόδου.

Αν θέλετε να μάθετε για την επιστροφή μιας συμβολοσειράς από τη λειτουργία bash, τότε μπορείτε αυτό το tutoria ο.

Μεταβείτε στην κορυφή

Κλήση προγραμμάτων σε σενάριο

Μπορείτε να χρησιμοποιήσετε πολλούς τύπους εντολών για να καλέσετε άλλα προγράμματα σε οποιοδήποτε σενάριο bash, όπως π.χ. πηγή, bash, eval, εκτελ κλπ. Ας υποθέσουμε ότι υπάρχουν τρία αρχεία bash, προσθήκη.σ , αφαίρεση.σ, πολλαπλασιάστε.sh και διαίρεση.sh δημιουργήθηκε για να εκτελεί προσθήκη, αφαίρεση, πολλαπλασιασμό και διαίρεση. Εδώ, αφαιρώ.σ και διαίρεση.σ διαβάστε τα ορίσματα της γραμμής εντολών. Το σενάριο και των τεσσάρων αυτών αρχείων δίνεται παρακάτω.

προσθήκη.σ

#!/bin/bash
προς το=60
σι=40
((αποτέλεσμα=$ α+$ β))
πέταξε έξω «Η προσθήκη του$ α+$ β=$ αποτέλεσμα'

αφαίρεση.σ

#!/bin/bash
προς το=$ 1
σι=$ 2
((αποτέλεσμα=$ α-$ β))
πέταξε έξω «Η αφαίρεση του$ α-$ β=$ αποτέλεσμα'

πολλαπλασιάστε.σ

#!/bin/bash
((αποτέλεσμα=$ 1*$ 2))
πέταξε έξω «Ο πολλαπλασιασμός του $ 1 και $ 2 είναι$ αποτέλεσμα'

διαίρεση.σ

#!/bin/bash
προς το=$ 1
σι=2
((αποτέλεσμα=$ α/$ β))
πέταξε έξω «Η διαίρεση του$ αμε$ βείναι$ αποτέλεσμα'

Δημιουργήστε ένα αρχείο bash με όνομα, callpro.sh με το ακόλουθο σενάριο για να καλέσετε τα αναφερόμενα αρχεία bash χρησιμοποιώντας εντολές προέλευσης, bash, eval και exec. Πρέπει να ορίσετε άδεια εκτέλεσης για τα παραπάνω τέσσερα αρχεία πριν εκτελέσετε το ακόλουθο σενάριο. Η εντολή `πηγή` χρησιμοποιείται για κλήση προσθήκη.σ αρχείο. Η εντολή `bash` χρησιμοποιείται για την εκτέλεση αρχείου subtract.sh. Η εντολή `eval` χρησιμοποιείται για την εκτέλεση του αρχείου multiply.sh. Δύο τιμές εισόδου αποστέλλονται ως ορίσματα της γραμμής εντολών για την εντολή `eval`. Η τελευταία εντολή είναι η εντολή exec που λειτουργεί μόνο με απόλυτη διαδρομή. Για αυτό, το πλήρες όνομα διαδρομής του αρχείου div.sh δίνεται στο σενάριο.

callpro.sh

#!/bin/bash
script1='add.sh'
script2='αφαιρέστε.σ'
script3='multiply.sh'
script4='/home/fahmida/code/divide.sh'

πηγή '$ script1'

κτυπώ δυνατά $ script2 πενήντα είκοσι

πέταξε έξω 'Εισαγάγετε την τιμή του'
ανάγνωσηπρος το
πέταξε έξω 'Εισαγάγετε την τιμή του b'
ανάγνωσησι
eval κτυπώ δυνατά $ script3 $ α $ β
εκτελ $ script4 30

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάcallpro.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μεταβείτε στην κορυφή

Δημιουργία μενού

Υπάρχει μια χρήσιμη εντολή στο bash για να δημιουργήσετε ένα απλό μενού που ονομάζεται `επιλέξτε` εντολή. Διαφορετικοί τύποι μενού μπορούν να δημιουργηθούν χρησιμοποιώντας αυτήν την εντολή. Μια συγκεκριμένη λίστα δεδομένων χρησιμοποιείται για τη δημιουργία ενός μενού με αυτήν την εντολή. Δημιουργήστε ένα αρχείο bash με τον ακόλουθο κώδικα για να δείτε τη χρήση του `επιλέξτε` εντολή για δημιουργία μενού. Σε αυτό το παράδειγμα, η λίστα των πέντε στοιχείων θα εκτυπωθεί ως μενού και θα ζητήσει από τον χρήστη να επιλέξει οποιαδήποτε γλώσσα από τη λίστα. Η επιλεγμένη τιμή θα αποθηκευτεί στη μεταβλητή, $ γλώσσα που εκτυπώνεται αργότερα με σύνδεση με άλλη συμβολοσειρά. Το σενάριο θα ζητά συνεχώς την επιλογή της γλώσσας μέχρι να πατήσει ο χρήστης 6 να τερματιστεί από το σενάριο.

menu.sh

#!/bin/bash

#Εκτύπωση μηνύματος για τον χρήστη
πέταξε έξω «Επιλέξτε την αγαπημένη σας γλώσσα»

# Ορίστε τη λίστα ενός στοιχείου μενού
επιλέγωΓλώσσασεντο# Java PHP Python Bash Exit
κάνω
#Εκτυπώστε την επιλεγμένη τιμή
αν [[ $ γλώσσα=='Εξοδος' ]]
τότε
έξοδος 0
αλλού
πέταξε έξω 'Επιλεγμένη γλώσσα είναι$ γλώσσα'
είναι
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάmenu.sh

Σύμφωνα με την ακόλουθη έξοδο, ο χρήστης πάτησε 3 για πρώτη φορά που εκτύπωσε PHP και πάτησε 6 για δεύτερη φορά που τελείωσε από το σενάριο.

Αν θέλετε να μάθετε περισσότερα σχετικά με τη δημιουργία μενού bash με `select`, τότε μπορείτε να επισκεφτείτε αυτό το σεμινάριο.

Μεταβείτε στην κορυφή

Επεξεργασία γραμμής εντολών

Μερικές φορές πρέπει να παρέχουμε τιμές εισόδου κατά την εκτέλεση του σεναρίου από τη γραμμή εντολών. Αυτή η εργασία μπορεί να γίνει με δύο τρόπους στο bash. Ένας τρόπος είναι με τη χρήση μεταβλητών ορίσματος και ένας άλλος τρόπος είναι με τη χρήση της λειτουργίας getopts. Σε αυτήν την ενότητα εμφανίζεται η ανάγνωση δεδομένων εισαγωγής γραμμής εντολών από το τερματικό χρησιμοποιώντας τη μεταβλητή ορίσματος.

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να δείτε τη χρήση της τιμής του ορίσματος της γραμμής εντολών ανάγνωσης. Αυτό το σενάριο θα διαβάσει τρία ορίσματα γραμμής εντολών που θα αποθηκευτούν στις μεταβλητές, $ operand1, $ operand2 και $ operator. Για να εκτελεστεί σωστά το σενάριο, η πρώτη και η τρίτη τιμή ορίσματος πρέπει να είναι ο αριθμός και η δεύτερη τιμή ορίσματος πρέπει να είναι οποιοσδήποτε από τους τέσσερις αριθμητικούς τελεστές («+», «-», «/», «x»). αν δήλωση θα ελέγξει την τιμή του τελεστή $ και θα κάνει τη λειτουργία με βάση τον τελεστή και θα εκτυπώσει την τιμή.

cl1.sh

#!/bin/bash

#Εκτύπωση των μεταβλητών ορίσματος
πέταξε έξω 'Οι τιμές επιχειρημάτων είναι: $ 1 $ 2 $ 3'

# Αποθήκευση τιμών ορίσματος
τελεστέος 1=$ 1
τελεστή 2=3 $
χειριστής=$ 2

#Ελέγξτε την τιμή του ορίσματος 2ης εντολής για να κάνετε την αριθμητική λειτουργία
αν [[ τελεστής $=='+' ]]
τότε
((αποτέλεσμα=$ operand1+$ operand2))
elif [[ τελεστής $=='-' ]]
τότε
((αποτέλεσμα=$ operand1-$ operand2))
elif [[ τελεστής $=='Χ' ]]
τότε
((αποτέλεσμα=$ operand1*$ operand2))
elif [[ τελεστής $=='/' ]]
τότε

((αποτέλεσμα=$ operand1/$ operand2))
είναι

# εκτυπώστε το αποτέλεσμα
πέταξε έξω -Και 'Το αποτέλεσμα είναι =$ αποτέλεσμα'

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάcl1.sh

Το σενάριο εκτελείται τέσσερις φορές για τέσσερις τύπους αριθμητικών τελεστών. Η ακόλουθη έξοδος θα εμφανιστεί για τις τιμές του ορίσματος, 6 + 3, 6 - 3, 6 x 3 και 6 /3 Το

Οι τιμές επιχειρημάτων μπορούν να περάσουν με ζεύγος ονόματος-τιμής στο bash. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να δείξετε πώς να διαβάζετε τιμές ορίσματος με το όνομα. Το σενάριο θα διαβάσει δύο μεταβλητές ορίσματος. Οι τιμές του ορίσματος με όνομα εκτυπώνονται στην πρώτη δήλωση του σεναρίου. Στη συνέχεια, χρησιμοποιείται ένας βρόχος for για να επαναλάβει τον πίνακα που περιέχει τιμές ορίσματος γραμμής εντολών. Κάθε στοιχείο του πίνακα χωρίζεται σε ένα ζεύγος κλειδιού-τιμής χρησιμοποιώντας την εντολή `cut`. Στη συνέχεια, η δήλωση περίπτωσης χρησιμοποιείται για την εκτύπωση ενός συγκεκριμένου μηνύματος με βάση την τιμή κλειδιού.

cl2.sh

. #! /είμαι/κτυπώ δυνατά

#Εκτύπωση των μεταβλητών ορίσματος
πέταξε έξω 'Οι τιμές επιχειρημάτων είναι: $ 1 $ 2'

#Διαβάστε κάθε όρισμα ξεχωριστά χρησιμοποιώντας το βρόχο
Γιαθυμωμένοςσε '[email protected]'
κάνω

#Ξεχωριστό όνομα και τιμή ορίσματος
κλειδί= $(πέταξε έξω $ arg | Τομή -f1 -ρε=)
αξία= $(πέταξε έξω $ arg | Τομή -f2 -ρε=)

#Εκτύπωση μηνύματος με βάση το όνομα του επιχειρήματος
υπόθεση $ κλειδί σε
όνομα) πέταξε έξω 'Όνομα μαθητή =$ αξία';;
σημάδι) πέταξε έξω 'Αποκτήθηκε σήμα =$ αξία' ;;
*)
esac
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο με τα παρακάτω ορίσματα της γραμμής εντολών.

$κτυπώ δυνατάcl2.shόνομα= Αμπίρ Χοσεΐνσημάδι=90

Δύο ορίσματα γραμμής εντολών παρέχονται στις παραπάνω εντολές. Αυτά είναι όνομα = Abir Hossain και σήμα = 90 Το όνομα και σημάδια χωρίζονται από το σενάριο και δύο τιμές εκτυπώνονται μετά τη μορφοποίηση της εξόδου.

Επεξεργασία ορισμάτων γραμμής εντολών με χρήση παίρνει λειτουργία δεν συζητείται σε αυτό το σεμινάριο. Αν θέλετε να μάθετε για την επεξεργασία της γραμμής εντολών χρησιμοποιώντας παίρνει στη συνέχεια μπορείτε να επισκεφθείτε αυτό το σεμινάριο Το

Μεταβείτε στην κορυφή

Αριθμητική

Η εκτέλεση αριθμητικής λειτουργίας είναι μια κοινή απαίτηση οποιασδήποτε γλώσσας προγραμματισμού. Ο Bash κάνει την αριθμητική λειτουργία με διαφορετικό τρόπο από μια άλλη τυπική γλώσσα προγραμματισμού. Υπάρχουν πολλοί τρόποι για να κάνετε αριθμητικές πράξεις στο bash. Ένας από τους απλούς τρόπους εκτέλεσης της αριθμητικής λειτουργίας παρουσιάζεται σε αυτήν την ενότητα. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο. Τέσσερις τύποι αριθμητικών πράξεων εμφανίζονται σε αυτό το σενάριο. Μια απλή πράξη άθροισης και διαίρεσης εμφανίζεται χρησιμοποιώντας διπλές πρώτες αγκύλες στην αρχή του σεναρίου. Στη συνέχεια, εμφανίζεται η λειτουργία προσαύξησης. Τέλος, ο τρόπος χρήσης του τελεστή συντομογραφίας εμφανίζεται στο τελευταίο μέρος του σεναρίου.

arith.sh

#!/bin/bash
# Υπολογίστε το άθροισμα
αποτέλεσμα= $((πενήντα+25))
# Εκτύπωση αθροιστικής αξίας
πέταξε έξω 'άθροισμα =$ αποτέλεσμα'

# Υπολογίστε τη διαίρεση
αποτέλεσμα= $((πενήντα/25))
# Εκτύπωση τιμής διαίρεσης
πέταξε έξω 'διαίρεση =$ αποτέλεσμα'

# Εκχωρήστε μια τιμή στο Ν
Ν=10
# Πραγματοποίηση προσαύξησης
((--Ν))
# Εκτυπώστε την τιμή του Ν
πέταξε έξω «Τιμή μετά από μείωση =$ N'

# Χρησιμοποιώντας τελεστή συντομογραφίας
((Ν +=10 ))
# Εκτυπώστε την τιμή του Ν
πέταξε έξω 'Αξία μετά την προσθήκη 10 =$ N'

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάarith.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Όλες οι αριθμητικές πράξεις γίνονται χρησιμοποιώντας διπλές αγκύλες σε αυτό το παραπάνω σενάριο. Μπορείτε όμως να χρησιμοποιήσετε το ‘ αφήνω ',' expr ' και ' προ ΧΡΙΣΤΟΥ «Εντολή για την εκτέλεση της αριθμητικής λειτουργίας στο bash. Αν θέλετε να μάθετε περισσότερα σχετικά με αυτές τις εντολές για την εκτέλεση αριθμητικών πράξεων bash, μπορείτε να επισκεφθείτε αυτό το σεμινάριο.

Μεταβείτε στην κορυφή

Χειρισμός Χορδών

Πολλοί τύποι εργασιών μπορούν να γίνουν με τα δεδομένα συμβολοσειράς στο bash. Ορισμένες συνδέουν συμβολοσειρά, συγκρίνουν συμβολοσειρά, χωρίζουν μια συμβολοσειρά, αλλάζουν πεζά κορδόνια κλπ. Δεν υπάρχουν ενσωματωμένες συναρτήσεις συμβολοσειράς όπως άλλες τυπικές γλώσσες στο bash για την εκτέλεση των λειτουργιών συμβολοσειράς. Ορισμένοι συνηθισμένοι χειρισμοί συμβολοσειρών συζητούνται σε αυτήν την ενότητα αυτού του σεμιναρίου.

Συνδυαστική χορδή

Η προσθήκη δύο ή περισσότερων συμβολοσειρών μαζί ονομάζεται συνένωση συμβολοσειράς. Η συμβολοσειρά ενώνεται μεταξύ τους σε bash τοποθετώντας τη μία μετά την άλλη. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να δείξετε τη χρήση της συνένωσης συμβολοσειράς. Δύο μεταβλητές συμβολοσειράς αρχικοποιούνται και εκτυπώνονται μετά τον συνδυασμό των μεταβλητών. Εδώ, το περιεχόμενο του $ string1 και $ string2 θα συγχωνευθούν και θα εκτυπωθούν.

συμπαγής.σ

#!/bin/bash

#Αρχικοποίηση μεταβλητής πρώτης συμβολοσειράς
χορδή 1='Μου αρέσει '
#Αρχικοποίηση μεταβλητής δεύτερης συμβολοσειράς
χορδή 2='Προγραμματισμός Bash'
#Εκτύπωση αφού συνδυάσετε και τις δύο συμβολοσειρές
πέταξε έξω '$ string1$ string2'

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάσυμπαγής.σ

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μπορείτε να μάθετε περισσότερα για τη συνένωση συμβολοσειρών από αυτό το σεμινάριο.

Μεταβείτε στην κορυφή

Σύγκριση συμβολοσειράς

Το Bash χρησιμοποιεί διαφορετικούς τύπους τελεστών για τη σύγκριση δεδομένων συμβολοσειράς. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να δείξετε πώς να συγκρίνετε δεδομένα δύο συμβολοσειρών. Μια τιμή συμβολοσειράς λαμβάνεται ως είσοδος στο σενάριο που συγκρίνεται με μια άλλη συμβολοσειρά. Εάν η τιμή ταιριάζει τότε ένα μήνυμα, Σας αρέσει η Python θα εκτυπωθεί διαφορετικά Σας αρέσει το PERL θα τυπωθεί

σύγκριση.σ

#!/bin/bash
πέταξε έξωΕισαγάγετε οποιαδήποτε τιμή συμβολοσειράς
ανάγνωσηκείμενο

#Ελέγξτε τα δεδομένα εισόδου είναι ισοδύναμα με την Python
αν [ $ κείμενο=='Πύθων' ]?τότε
πέταξε έξω 'Σου αρέσει η Python.'
αλλού
πέταξε έξω 'Σας αρέσει το PERL'
είναι

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάσύγκριση.σ

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου όπου η τιμή εισόδου είναι 'PERL'.

Μπορείτε να μάθετε περισσότερα για τη σύγκριση συμβολοσειρών από αυτό το σεμινάριο Το

Διαχωρισμός συμβολοσειράς

Το Bash δεν διαθέτει ενσωματωμένη λειτουργία διαίρεσης για διαίρεση δεδομένων συμβολοσειράς. Τα δεδομένα συμβολοσειράς μπορούν να διαιρεθούν με πολλούς τρόπους στο bash βάσει διαφορετικών τύπων οριοθέτησης. Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να δείξετε πώς μπορούν να χωριστούν τα δεδομένα συμβολοσειράς σε bash. Μια τιμή συμβολοσειράς λαμβάνεται ως είσοδος. Αυτό το σενάριο θα διαιρέσει την τιμή του $ κείμενο με βάση το χώρο. Εδώ, το IFS η μεταβλητή χρησιμοποιείται για τον ορισμό του οριοθέτη. `διαβάστε` Η εντολή χρησιμοποιείται εδώ για να διαιρέσει την τιμή κειμένου και να αποθηκεύσει τις τιμές σε έναν πίνακα. Για Ο βρόχος χρησιμοποιείται για να επαναλάβει τον πίνακα και να εκτυπώσει την τιμή κάθε στοιχείου.

split.sh

#!/bin/bash
#Εισαγάγετε μια τιμή συμβολοσειράς
πέταξε έξωΕισαγάγετε μια τιμή συμβολοσειράς
ανάγνωσηκείμενο
# Ορίστε τον οριοθέτη
IFS=''
#Διαχωρίστε την τιμή του κειμένου $ σε έναν πίνακα με βάση τον οριοθέτη χώρου
ανάγνωση -προς τοarr<<< '$ κείμενο'
# Εκτυπώστε κάθε τιμή του πίνακα
Γιααξίασε '$ {arr [@]}'?
κάνω
printf '$ αξία n'
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάsplit.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά τη λήψη της εισόδου, Μάθετε προγραμματισμό Bash Το Αυτή η τιμή εισόδου είναι ένα κείμενο τριών λέξεων. Έτσι, η συμβολοσειρά χωρίζεται σε τρία μέρη.

Μπορείτε να μάθετε περισσότερα για τη σύγκριση συμβολοσειρών από αυτό το σεμινάριο Το

Αλλαγή Περίπτωσης συμβολοσειράς

Οι περισσότερες από τις γλώσσες δέσμης ενεργειών έχουν ενσωματωμένες λειτουργίες για να αλλάξουν την περίπτωση των δεδομένων συμβολοσειράς. Αλλά η περίπτωση των δεδομένων συμβολοσειράς μπορεί να αλλάξει σε bash χρησιμοποιώντας `tr` εντολή ή με χρήση ':ανώτερος' και ':πιο χαμηλα' λέξεις -κλειδιά. Δημιουργήστε ένα αρχείο bash με το παρακάτω σενάριο για να γνωρίζετε τους τρόπους αλλαγής πεζών χαρακτήρων σε bash. Εδώ, τα πρώτα δεδομένα συμβολοσειράς μετατρέπονται σε κεφαλαία με τη χρήση ‘^^’ σύμβολο και η δεύτερη συμβολοσειρά μετατρέπεται σε πεζά με τη χρήση `tr` εντολή. `tr` Η εντολή θα αναζητήσει όλα τα κεφαλαία γράμματα στη συμβολοσειρά και θα μετατρέψει τους χαρακτήρες σε πεζά.

θήκη.σ

#!/bin/bash

#Αρχικοποιήστε τα πρώτα δεδομένα συμβολοσειράς
κείμενο 1='[email protected]'

#Εκτυπώστε την τιμή του $ text1 μετατρέποντας όλους τους χαρακτήρες σε κεφαλαία
πέταξε έξω $ {email ^^}

#Αρχικοποιήστε τα δεδομένα δεύτερης συμβολοσειράς
κείμενο2= 'Βασικές αρχές προγραμματισμού Bash'

#Εκτυπώστε την τιμή του $ text2 μετατρέποντας όλα τα κεφαλαία σε πεζά
πέταξε έξω $ text2 | NS [:ανώτερος:] [:πιο χαμηλα:]

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάθήκη.σ

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μπορείτε να μάθετε περισσότερα για τη σύγκριση συμβολοσειρών από αυτό το σεμινάριο Το

Μεταβείτε στην κορυφή

Ανάγνωση δεδομένων συμβολοσειράς μέσω του βρόχου

Τα δεδομένα συμβολοσειράς λειτουργούν ως πίνακας χαρακτήρων για οποιαδήποτε γλώσσα προγραμματισμού. Πως ' Για Ο βρόχος ’μπορεί να χρησιμοποιηθεί για την ανάγνωση δεδομένων συμβολοσειράς στο bash που εμφανίζεται σε αυτήν την ενότητα. Δημιουργήστε ένα αρχείο βάσης με το ακόλουθο σενάριο για να διαβάσετε κάθε μέρος της τιμής συμβολοσειράς χρησιμοποιώντας το βρόχο for.

readstr.sh

#!/bin/bas
# Διαβάστε κάθε λέξη ενός κειμένου χρησιμοποιώντας το βρόχο
ΓιααξίασεΠρογραμματισμός BashΓιαοι Αρχάριοι
κάνω
πέταξε έξω $ αξία
Έγινε

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάreadstr.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μπορείτε να μάθετε περισσότερα σχετικά με την επανάληψη δεδομένων συμβολοσειράς χρησιμοποιώντας τον βρόχο από αυτό το σεμινάριο Το

Μεταβείτε στην κορυφή

Επιστροφή κωδικών επιστροφής από ένα σενάριο και σύλληψη σε άλλο σενάριο

Ένα σενάριο bash μπορεί να πιάσει κωδικούς επιστροφής από άλλο σενάριο καλώντας το σενάριο και χρησιμοποιώντας «$;» για να διαβάσετε την τιμή επιστροφής. Ας υποθέσουμε, ένα αρχείο bash με όνομα πρώτο.σ επιστρέφει έναν κωδικό μετά την εκτέλεση. Δημιουργήστε ένα άλλο αρχείο bash με όνομα δεύτερο.σ και προσθέστε το ακόλουθο σενάριο για να πιάσετε την τιμή επιστροφής και να κάνετε κάποιες άλλες εργασίες. Ο κωδικός και των δύο αρχείων δίνεται παρακάτω. πρώτο.σ το αρχείο θα κληθεί από δεύτερο.σ αρχείο στην αρχή του σεναρίου. πρώτο.σ θα επιστρέψει έναν κωδικό εξόδου με βάση την τιμή εισόδου. second.sh θα πιάσει τον κωδικό κατά «$;» και συγκρίνετε με 1. Εάν και οι δύο τιμές είναι ίσες, τότε θα εκτυπωθεί, Ο αριθμός εισόδου είναι μεγαλύτερος από 100 , αλλιώς θα εκτυπώσει, Ο αριθμός εισόδου είναι μικρότερος ή ίσος με 100 Το

πρώτο.σ

#!/bin/bash

πέταξε έξω 'Εισαγάγετε μια αριθμητική τιμή'
ανάγνωσην

# Ελέγξτε ότι η τιμή εισόδου είναι μικρότερη ή ίση με 100 ή όχι
αν [[ $ n -ο 100 ]]
τότε
έξοδος 0
αλλού
έξοδος 1
είναι

δεύτερο.σ

#! /bin/bash

#Εκτέλεση του αρχείου, first.sh
κτυπώ δυνατά 'first.sh'

#Ελέγξτε ότι ο κωδικός επιστροφής είναι ίσος με 1 ή όχι
αν [ $? -ισοδύναμο 1 ]
τότε
πέταξε έξω 'Ο αριθμός εισόδου είναι μεγαλύτερος από 100'
αλλού
πέταξε έξω 'Ο αριθμός εισαγωγής είναι μικρότερος ή ίσος με 100'
είναι

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάδεύτερο.σ

Η ακόλουθη έξοδος θα εμφανιστεί όταν το σενάριο εκτελείται κατά 55 και 110 για δύο φορές.

Μεταβείτε στην κορυφή

Ανάγνωση και εγγραφή σε αρχεία

Η ανάγνωση και η εγγραφή αρχείων είναι κοινές απαιτήσεις του προγραμματισμού bash. Το Bash δεν έχει καμία ενσωματωμένη λειτουργία όπως μια άλλη γλώσσα για ανάγνωση ή εγγραφή του αρχείου. Υπάρχουν πολλοί τρόποι για να διαβάσετε το αρχείο σε bash. Ο πιο συνηθισμένος τρόπος για να διαβάσετε ή να γράψετε ένα αρχείο σε bash είναι η χρήση `γάτα` εντολή. Αλλά αυτή η εντολή χρησιμοποιείται για ανάγνωση ολόκληρου του περιεχομένου του αρχείου κάθε φορά. Μπορείτε επίσης να διαβάσετε οποιοδήποτε αρχείο γραμμή με γραμμή χρησιμοποιώντας οποιοδήποτε βρόχο και `διαβάστε` εντολή. Χρησιμοποιώντας τελεστή ανακατεύθυνσης, '>' , μπορείτε να γράψετε δεδομένα σε οποιοδήποτε αρχείο στο bash. Εάν θέλετε να προσθέσετε δεδομένα σε οποιοδήποτε αρχείο, πρέπει να το χρησιμοποιήσετε '>>' χειριστής. Τόσο η ανάγνωση όσο και η εγγραφή των λειτουργιών αρχείων εμφανίζονται στο επόμενο μέρος αυτής της ενότητας.

Ανάγνωση αρχείου σε bash

Δημιουργήστε ένα αρχείο bash με το παρακάτω σενάριο για να διαβάσετε ένα υπάρχον αρχείο με το όνομα « hardware.txt ’. Το περιεχόμενο αυτού του αρχείου δίνεται παρακάτω. Στο σενάριο, ολόκληρο το περιεχόμενο του αρχείου διαβάζεται από `γάτα` εντολή πρώτη και επόμενη, ενώ ο βρόχος χρησιμοποιείται για την ανάγνωση του αρχείου γραμμή προς γραμμή.

hardware.txt

Οθόνη
Πληκτρολόγιο
Ποντίκι
Ερευνητής
Εκτυπωτής

readfile.sh

#!/bin/bash

πέταξε έξω 'Ανάγνωση αρχείου χρησιμοποιώντας εντολή γάτας'

# Διαβάστε το περιεχόμενο του αρχείου χρησιμοποιώντας την εντολή `cat`
περιεχόμενο='Γάταhardware.txt'
πέταξε έξω $ περιεχόμενο

πέταξε έξω 'Ανάγνωση αρχείου γραμμή με γραμμή χρησιμοποιώντας βρόχο'

# Εκχώρηση ονόματος αρχείου
όνομα αρχείου='hardware.txt'

# Κάθε γραμμή του αρχείου θα διαβάζεται από κάθε επανάληψη του βρόχου
ενώ ανάγνωσηγραμμή;
κάνω
# εκτύπωση της γραμμής
πέταξε έξω $ line
Έγινε<$ όνομα αρχείου

Παραγωγή:

Εκτελέστε τις ακόλουθες εντολές.

$Γάταhardware.txt
$κτυπώ δυνατάreadfile.sh

Εδώ, η πρώτη εντολή θα εκτυπώσει το περιεχόμενο του αρχείου, hardware.txt χωρίς να εκτελέσετε κανένα σενάριο bash και η δεύτερη εντολή θα εκτελέσει το σενάριο του readfile.sh και εκτυπώστε το περιεχόμενο του αρχείου για δύο φορές χρησιμοποιώντας `γάτα` εντολή και `διαβάστε` εντολή με βρόχο while. Μπορείτε να το επισκεφτείτε αυτό φροντιστήριο για να μάθετε περισσότερα σχετικά με την ανάγνωση αρχείου γραμμή προς γραμμή.

Εγγραφή αρχείου σε bash

Δημιουργήστε ένα αρχείο bash με το ακόλουθο σενάριο για να γράψετε νέο περιεχόμενο σε ένα νέο αρχείο και να προσθέσετε δεδομένα σε αυτό το αρχείο.

writefile.sh

#!/bin/bash

πέταξε έξω 'Εισαγάγετε κάποιο κείμενο'
#Διαβάστε δεδομένα συμβολοσειράς
ανάγνωσηstr1
#Προσθέστε δεδομένα εισαγωγής στο αρχείο για πρώτη φορά
πέταξε έξω $ str1 >>test.txt

πέταξε έξω 'Εισαγάγετε κάποιο άλλο κείμενο'
#Διαβάστε άλλα δεδομένα συμβολοσειράς
ανάγνωσηstr2
#Προσθέστε δεδομένα εισόδου στο τέλος του αρχείου
πέταξε έξω $ str2 >>test.txt

#Εμφάνιση ολόκληρου του περιεχομένου του αρχείου
πέταξε έξω 'Γάταtest.txt'

Παραγωγή:

Εκτελέστε το σενάριο.

$κτυπώ δυνατάwritefile.sh

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Μεταβείτε στην κορυφή

Σωλήνες

Ο σωλήνας χρησιμοποιείται για την ανακατεύθυνση οποιασδήποτε εξόδου εντολών σε άλλη είσοδο εντολών. Μπορεί να χρησιμοποιηθεί μεταξύ διαφορετικών τύπων εντολών bash για τη δημιουργία συγκεκριμένης εξόδου. Η τυπική είσοδος συνδέεται με την τυπική έξοδο στο Linux μέσω σωλήνα. Πρέπει να ορίσετε την εντολή με τη σειρά με το σύμβολο σωλήνα (|) για να έχετε την επιθυμητή έξοδο. Δύο ή περισσότερες εντολές μπορούν να εκτελεστούν μαζί σε μία μόνο εντολή χρησιμοποιώντας σωλήνα. Πρέπει να εκτελέσετε πολλαπλές εντολές σε πολλές γραμμές χωρίς σωλήνα για να κάνετε την ίδια εργασία. Έτσι, η χρήση σωλήνων είναι πολύ επωφελής για την εκτέλεση πολλών τύπων εργασιών σε σύντομη μορφή.

σύνταξη:

εντολή 1|εντολή2|...

Εδώ, η έξοδος της εντολής1 θα περάσει ως είσοδος της εντολής2.

Ο ίδιος τύπος εργασίας γίνεται με σωλήνα και χωρίς σωλήνα στο επόμενο μέρος αυτού του τμήματος. Ας υποθέσουμε ένα αρχείο κειμένου με όνομα σημάδια.txt δίνεται με τα ακόλουθα στοιχεία.

σημάδια.txt

Asraf CSE-409 79

Kabir CSE-304 95

Keya CSE-101 67

Asraf CSE-304 88

Keya CSE-409 90

Asraf CSE-101 92

Πρέπει να ταξινομήσετε τα δεδομένα του αρχείου και να μάθετε και να εκτυπώσετε όλη την καταχώριση του ονόματος του μαθητή «Κ ναι ' Το Μπορείτε να κάνετε αυτήν την εργασία εκτελώντας πολλές εντολές χωρίς να χρησιμοποιήσετε σωλήνα που εμφανίζεται στην επόμενη ενότητα. Οι ακόλουθες εντολές θα πρέπει να εκτελεστούν για να έχετε την επιθυμητή έξοδο. Η πρώτη εντολή θα ταξινομήσει το αρχείο. Η δεύτερη εντολή θα αναζητήσει την καταχώρηση «Κ ναι ' χρησιμοποιώντας ` λαβή `Εντολή και αποθήκευση της εξόδου στο ένα temp.txt αρχείο. Η τρίτη εντολή θα μετρήσει τις συνολικές γραμμές του a temp.txt αρχείο χρησιμοποιώντας `wc` εντολή.

$είδοςσημάδια.txt
$λαβή 'Κέγια'σημάδια.txt>>temp.txt
$τουαλέτα -οtemp.txt

Παραγωγή:

Δύο καταχωρήσεις του μαθητή, «Keya» υπάρχουν στο αρχείο. Έτσι, μετά την εκτέλεση των παραπάνω εντολών, θα εμφανιστεί η ακόλουθη έξοδος.

Μπορείτε εύκολα να συγχωνεύσετε τις παραπάνω τρεις εντολές και να λάβετε την ίδια έξοδο εκτελώντας μία μόνο εντολή με ένα σωλήνα που εμφανίζεται στην ακόλουθη εντολή. Δεν απαιτείται προσωρινό αρχείο εδώ για να λάβετε την έξοδο. Εδώ, η έξοδος του ` είδος Η εντολή 'θα περάσει ως είσοδος του' λαβή `εντολή και η έξοδος του` λαβή `Η εντολή θα περάσει ως είσοδος για το `wc` εντολή.

$είδοςσημάδια.txt| λαβή 'Κέγια' | τουαλέτα -ο

Παραγωγή:

Αφού εκτελέσετε την παραπάνω εντολή, θα λάβετε την ακόλουθη έξοδο όπως η έξοδος της προηγούμενης εντολής. Η έξοδος της εντολής θα είναι 2.

Μεταβείτε στην κορυφή

Συμπέρασμα:

Σε αυτό το σεμινάριο προσπαθούν να καλυφθούν τα πιο χρήσιμα και απαραίτητα θέματα της γλώσσας δέσμης ενεργειών. Ελπίζουμε ότι ο αναγνώστης θα ωφεληθεί αφού διαβάσει αυτό το σεμινάριο και θα είναι σε θέση να γράψει πιο αποτελεσματικά το σενάριο bash.