30 bash script Ερωτήσεις και απαντήσεις συνέντευξης

30 Bash Script Interview Questions



Το Bash scripting είναι μια πολύ χρήσιμη και ισχυρή γλώσσα προγραμματισμού που χρησιμοποιείται κυρίως για την αυτοματοποίηση κάθε χειροκίνητης εργασίας. Ένας αναζητητής εργασίας που θέλει να είναι ένας ελεγκτής αυτοματισμού ή προγραμματιστής bash πρέπει να αντιμετωπίσει μερικές συνήθεις ερωτήσεις στη συνέντευξη. Υπάρχουν διάφοροι τύποι σεναρίων κελύφους στο Linux. Ένα από τα δημοφιλή και κυρίως χρησιμοποιούμενα σενάρια κελύφους είναι το Bourne Again Shell ή το Bash. Σε αυτό το άρθρο περιγράφονται 30 σημαντικές ερωτήσεις και απαντήσεις για συνεντεύξεις σχετικά με τη γλώσσα δέσμης ενεργειών για προετοιμασία για τη δουλειά.

#01 Τι είναι το σενάριο bash;

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







#02 Ποια είναι τα πλεονεκτήματα της χρήσης σεναρίων bash;

Το σενάριο Bash έχει πολλά πλεονεκτήματα που περιγράφονται παρακάτω:



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

#03 Αναφέρετε τα μειονεκτήματα των σεναρίων bash

Μερικά μειονεκτήματα του σεναρίου bash αναφέρονται παρακάτω:



  • Λειτουργεί πιο αργά από άλλες γλώσσες.
  • Το ακατάλληλο σενάριο μπορεί να βλάψει ολόκληρη τη διαδικασία και να δημιουργήσει ένα περίπλοκο σφάλμα.
  • Δεν είναι κατάλληλο για την ανάπτυξη μιας μεγάλης και πολύπλοκης εφαρμογής.
  • Περιέχει λιγότερη δομή δεδομένων σε σύγκριση με άλλες τυπικές γλώσσες προγραμματισμού.

#04 Ποιοι τύποι μεταβλητών χρησιμοποιούνται στο bash;

Δύο τύποι μεταβλητών μπορούν να χρησιμοποιηθούν στο σενάριο bash. Αυτά είναι:

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

`set`,` env` και ` printenv Οι εντολές μπορούν να χρησιμοποιηθούν για την εκτύπωση της λίστας μεταβλητών συστήματος.

Παράδειγμα:





#!/bin/bash
# Μεταβλητές συστήματος εκτύπωσης

#Print Bash όνομα κελύφους
πέταξε έξω $ BASH

# Εκτύπωση έκδοσης κελύφους Bash
πέταξε έξω $ BASH_VERSION

# Εκτύπωση ονόματος αρχικού καταλόγου
πέταξε έξω $ HOME

Μεταβλητή καθορισμένη από το χρήστη

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

#!/bin/bash

σε ένα=100
πέταξε έξω $ αριθ

#05 Πώς να δηλώσετε και να διαγράψετε μεταβλητές στο bash;

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



–R , -i, -a, -A, -l, -u, -t και επιλογές μπορούν να χρησιμοποιηθούν με δηλώνω εντολή για δήλωση μεταβλητής με διαφορετικούς τύπους δεδομένων.

Παράδειγμα:

#!/bin/bash

#Δηλώστε μεταβλητή χωρίς κανέναν τύπο
σε ένα=10

#Οι τιμές θα συνδυαστούν αλλά δεν θα προστεθούν
αποτέλεσμα=$ αριθ+είκοσι
πέταξε έξω $ αποτέλεσμα

#Δηλώστε μεταβλητή με ακέραιο τύπο
δηλώνω -Εγώ σε ένα=10

#Αξίες θα προστεθούν
δηλώνω -Εγώ αποτέλεσμα= num+είκοσι
πέταξε έξω $ αποτέλεσμα

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

Παράδειγμα:

#!/bin/bash

Π='Linux Hint'
πέταξε έξω $ str
μη ρυθμισμένος $ str
πέταξε έξω $ str

#06 Πώς να προσθέσετε σχόλια σε ένα σενάριο bash;

Τα σχόλια μιας γραμμής και πολλαπλών γραμμών μπορούν να χρησιμοποιηθούν σε σενάριο bash. ' # Το σύμβολο χρησιμοποιείται για σχόλια μιας γραμμής. '<<’ σύμβολο με οριοθέτη και ':' με μονό (‘) χρησιμοποιούνται για την προσθήκη σχολίων πολλών γραμμών.

Παράδειγμα:

#!/bin/bash
#Εκτύπωση κειμένου [Σχόλιο με μία γραμμή]
πέταξε έξω 'Προγραμματισμός Bash'
< Υπολογίστε το άθροισμα
Από δύο αριθμούς [σχόλιο πολλαπλών γραμμών]
πρόσθεσε σχόλιο

σε ένα=25+35
πέταξε έξω $ αριθ
:'
Συνδυάστε δύο
Δεδομένα συμβολοσειράς [σχόλιο πολλών γραμμών]
'

Σειρά='Γεια σας'
πέταξε έξω $ string' Κόσμος'

#07. Πώς μπορείτε να συνδυάσετε συμβολοσειρές σε ένα σενάριο bash;

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

Παράδειγμα:

#!/bin/bash
#Αρχικοποιήστε τις μεταβλητές
str1='PHP'
str2='Κτυπώ δυνατά'
str3='Perl'

# Εκτύπωση συμβολοσειράς μαζί με κενό διάστημα
πέταξε έξω $ str1 $ str2 $ str3

#Συνδυάστε όλες τις μεταβλητές και αποθηκεύστε σε μια άλλη μεταβλητή
Π='$ str1,$ str2και$ str3'

#Συνδυάστε άλλα δεδομένα συμβολοσειράς με την υπάρχουσα τιμή της συμβολοσειράς
str + ='είναι γλώσσες δέσμης ενεργειών'

#Εκτυπώστε τη συμβολοσειρά
πέταξε έξω $ str

#08 Ποιες εντολές χρησιμοποιούνται για την εκτύπωση εξόδου σε bash;

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

Παράδειγμα:

#!/bin/bash

#Εκτυπώστε το κείμενο
πέταξε έξω 'Καλώς ορίσατε στο LinuxHint'
ιστοσελίδα='linuxhint.com'
#Εκτυπώστε το μορφοποιημένο κείμενο
printf Το '%s είναι ένας δημοφιλής ιστότοπος ιστολογίου n' $ site

#09 Πώς να λάβετε πληροφορίες από το τερματικό στο bash;

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

Παράδειγμα:

#!/bin/bash
#Εκτύπωση μηνύματος
πέταξε έξω 'Εισάγετε το όνομά σας'
#Λάβετε πληροφορίες από τον χρήστη
ανάγνωσηόνομα
# Εκτυπώστε την τιμή του $ name με άλλη συμβολοσειρά
πέταξε έξω 'Το όνομά σας είναι$ name'

#10 Πώς να χρησιμοποιήσετε ορίσματα γραμμής εντολών στο bash;

Τα ορίσματα της γραμμής εντολών διαβάζονται από $ 1, $ 2, $ 3… $ n μεταβλητές. Οι τιμές του ορίσματος της γραμμής εντολών παρέχονται στο τερματικό κατά την εκτέλεση του σεναρίου bash. $ 1 χρησιμοποιείται για την ανάγνωση του πρώτου ορίσματος, $ 2 χρησιμοποιείται για την ανάγνωση του δεύτερου ορίσματος και ούτω καθεξής.

Παράδειγμα:

#!/bin/bash
#Ελέγξτε εάν παρέχεται ή όχι όποιο επιχείρημα
αν [[ $ # -ισοδύναμο 0 ]]?τότε
πέταξε έξω «Δεν δίνεται κανένα επιχείρημα».
έξοδος 0
είναι
#Αποθηκεύστε την πρώτη τιμή ορίσματος
χρώμα=$ 1
# Εκτυπώστε το όρισμα με άλλη συμβολοσειρά
printf 'Το αγαπημένο σας χρώμα είναι %s n' $ χρώμα

#11 Είναι το bash μια αδύναμα δακτυλογραφημένη γλώσσα; Γιατί;

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

Παράδειγμα:

#!/bin/bash

#Ο τύπος δεδομένων του $ myVar είναι συμβολοσειρά από προεπιλογή
myVar=29

# Εκτυπώστε τη μεταβλητή
πέταξε έξω $ myVar

# Δηλώστε ακέραιο αριθμό μεταβλητής $ με την τιμή 67
δηλώνω -Εγώ αριθμός=67

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

# Αντιστοίχιση δεδομένων συμβολοσειράς στην αριθμητική μεταβλητή. Η ακόλουθη γραμμή θα δημιουργηθεί
# συντακτικό σφάλμα και η τιμή του $ number δεν θα αλλάξει
αριθμός='Μου αρέσει το bash'
πέταξε έξω $ αριθμός

#12. Πώς να διαβάσετε τη δεύτερη λέξη ή στήλη από κάθε γραμμή ενός αρχείου;

Η δεύτερη λέξη ή στήλη ενός αρχείου μπορεί να διαβαστεί σε σενάριο bash χρησιμοποιώντας εύκολα διαφορετικές εντολές bash, όπως `awk`,` sed` κ.λπ. Εδώ, η χρήση του `awk` φαίνεται στο ακόλουθο παράδειγμα.
Παράδειγμα: Ας υποθέσουμε ότι το αρχείο course.txt περιέχει το ακόλουθο περιεχόμενο και έχουμε εκτυπώσει μόνο τη δεύτερη λέξη κάθε γραμμής αυτού του αρχείου.

Προγραμματισμός Java CSE201
CSE303 Δομή δεδομένων
Προγραμματισμός CSE408 Unix#!/bin/bash
# Το παρακάτω σενάριο θα εκτυπώσει τη δεύτερη λέξη κάθε γραμμής από το αρχείο course.txt.
# η έξοδος της εντολής cat θα περάσει στην εντολή awk που θα διαβάσει τη δεύτερη λέξη
# κάθε γραμμής.
πέταξε έξω 'Γάταcourse.txt| awk '{print $ 2}''

#13 Πώς να δηλώσετε και να αποκτήσετε πρόσβαση σε μια μεταβλητή πίνακα στο bash;

Τόσο οι αριθμητικοί όσο και οι συσχετιστικοί πίνακες υποστηρίζονται από ένα σενάριο bash. Μια μεταβλητή πίνακα μπορεί να δηλωθεί με και χωρίς εντολή δήλωσης. -προς το Η επιλογή χρησιμοποιείται με την εντολή δήλωσης για τον ορισμό ενός αριθμητικού πίνακα και -ΠΡΟΣ ΤΟ Η επιλογή χρησιμοποιείται με δήλωση δήλωσης για τον ορισμό συσχετιστικού πίνακα στο bash. Χωρίς εντολή δήλωσης, ο αριθμητικός πίνακας μπορεί να οριστεί μόνο στο bash.

Παράδειγμα:

#!/bin/bash

# Δηλώστε έναν απλό αριθμητικό πίνακα
arr1=(CodeIgniter Laravel ReactJS)

# Εκτυπώστε την πρώτη τιμή στοιχείου $ arr1
πέταξε έξω $ {arr1 [0] {

# Δηλώστε έναν αριθμητικό πίνακα χρησιμοποιώντας την εντολή δήλωσης
δηλώνω -προς το arr2=(HTML CSS JavaScript)

# Εκτυπώστε την τιμή του δεύτερου στοιχείου $ arr2
πέταξε έξω $ {arr2 [1]}

# Δήλωση συσχετιστικού πίνακα χρησιμοποιώντας δήλωση δήλωσης
δηλώνω -ΠΡΟΣ ΤΟ arr3=( [δομή]= Laravel[CMS]= Wordpress[Βιβλιοθήκη]= JQuery)

# Εκτυπώστε την τιμή του τρίτου στοιχείου $ arr3
πέταξε έξω $ {arr3 [Βιβλιοθήκη]}

Μπορείτε να έχετε πρόσβαση σε όλα τα στοιχεία ενός πίνακα χρησιμοποιώντας οποιοδήποτε βρόχο ή σύμβολο ‘*’ ως ευρετήριο πίνακα.

#14. Πώς μπορούν να χρησιμοποιηθούν οι δηλώσεις υπό όρους στο bash;

Η πιο κοινή δήλωση υπό όρους στις περισσότερες γλώσσες προγραμματισμού είναι το if-elseif-else δήλωση. Η σύνταξη του αν-elseif-else η δήλωση στο bash είναι λίγο διαφορετική από άλλες γλώσσες προγραμματισμού. 'Αν' η δήλωση μπορεί να δηλωθεί με δύο τρόπους σε ένα σενάριο bash και σε κάθε τύπο 'αν' το μπλοκ πρέπει να κλείσει με 'είναι' Το 'αν' Η δήλωση μπορεί να οριστεί από τρίτες αγκύλες ή πρώτες αγκύλες όπως άλλες γλώσσες προγραμματισμού.

Σύνταξη:
ΠΡΟΣ ΤΟ.

αν [κατάσταση]?
τότε
δηλώσεις
είναι

ΣΙ.

αν [κατάσταση]?τότε
δηλώσεις1
αλλού
δήλωση2
είναι

ΝΤΟ.

αν [κατάσταση]?τότε
δήλωση1
elif[κατάσταση]?τότε
δήλωση2
….
αλλού
δήλωση ν
είναι

Παράδειγμα:

#!/bin/bash

# Εκχωρήστε μια τιμή σε $ n
ν=30
# Ελέγξτε το $ n είναι μεγαλύτερο από 100 ή όχι
αν [ $ n -gt 100 ]?τότε
πέταξε έξω '$ nείναι λιγότερο από 100 '
# Ελέγξτε $ n id μεγαλύτερο από 50 ή όχι
elif [ $ n -gt πενήντα ]?τότε
πέταξε έξω '$ nείναι λιγότερο από 50 '
αλλού
πέταξε έξω '$ nείναι λιγότερο από 50 '
είναι

#15. Πώς να συγκρίνετε τιμές στο bash;

Έξι τύποι τελεστών σύγκρισης μπορούν να χρησιμοποιηθούν στο bash για σύγκριση τιμών. Υπάρχουν δύο τρόποι χρήσης αυτών των τελεστών στο bash, ανάλογα με τον τύπο δεδομένων. Αυτά αναφέρονται παρακάτω.

Σύγκριση Χορδών Αριθμός Comarison Περιγραφή
== -ισοδύναμο Χρησιμοποιείται για τον έλεγχο της ισότητας
! = = -γεννημένος Χρησιμοποιείται για τον έλεγχο της ανισότητας
< -lt Χρησιμοποιείται για να ελέγξετε εάν η πρώτη τιμή είναι μικρότερη από τη δεύτερη τιμή ή όχι
>> -gt Χρησιμοποιείται για να ελέγξετε εάν η πρώτη τιμή είναι μεγαλύτερη από τη δεύτερη τιμή ή όχι
<= -ο Χρησιμοποιείται για να ελέγξετε ότι η πρώτη τιμή είναι μικρότερη ή ίση με τη δεύτερη τιμή ή όχι
> = -δίνω Χρησιμοποιείται για να ελέγξετε ότι η πρώτη τιμή είναι μεγαλύτερη ή ίση με τη δεύτερη τιμή ή όχι

Παράδειγμα:

#!/bin/bash
# Αρχικοποίηση $ n
ν=130
ή='ακόμη και'
# Ελέγξτε το $ n είναι μεγαλύτερο ή ίσο με 100 ή εάν δεν χρησιμοποιείτε το ‘–ge’.
αν [ $ n -δίνω 100 ]?τότε
πέταξε έξω '$ nείναι μεγαλύτερο ή ίσο με 100 '
αλλού
πέταξε έξω '$ nείναι λιγότερο από 100 '
είναι
# Έλεγχος $ n είναι ζυγός ή μονός χρησιμοποιώντας τον τελεστή ‘==’
αν (( $ ο=='ακόμη και' ))?τότε
πέταξε έξω «Ο αριθμός είναι ζυγός»
αλλού
πέταξε έξω «Ο αριθμός είναι περιττός»
είναι

#16. Ποια δήλωση υπό όρους μπορεί να χρησιμοποιηθεί ως εναλλακτική λύση στις δηλώσεις if-elseif-else στο bash;

'υπόθεση' η δήλωση μπορεί να χρησιμοποιηθεί ως εναλλακτική tp if-elseif-if δήλωση. Η σύνταξη για 'υπόθεση' η δήλωση σε σενάρια bash είναι διαφορετική από την διακόπτης-θήκη δήλωση άλλων γλωσσών προγραμματισμού. 'υπόθεση' το μπλοκ κλείνει από ‘Esac’ δήλωση στο bash. Οχι ' Διακοπή 'Η δήλωση χρησιμοποιείται μέσα' υπόθεση «Μπλοκ για να τερματιστεί από το μπλοκ.

Σύνταξη:

υπόθεση σε
Μοτίβο αντιστοίχισης1)εντολές;;
Μοτίβο αντιστοίχισης2)εντολές;;
……
Μοτίβο αντιστοίχισης n)εντολές;;
esac

Παράδειγμα:

#!/bin/bash
#Αρχικοποιήστε το μεταβλητό εισιτήριο $
εισιτήριο=101
# Συγκρίνετε την αξία του εισιτηρίου $ με 23, 101 και 503
υπόθεση $ εισιτήριο σε
2. 3)
# Εκτύπωση μηνύματος εάν η τιμή είναι 23
πέταξε έξω «Πήρες το πρώτο βραβείο»;;
101)
# Εκτύπωση μηνύματος εάν η τιμή είναι 101
πέταξε έξω «Πήρες το δεύτερο βραβείο»;;
503)
# Εκτύπωση μηνύματος εάν η τιμή είναι 503
πέταξε έξω «Πήρες το τρίτο βραβείο»;;
*)
# Εκτύπωση μηνύματος εάν η τιμή δεν ταιριάζει με 23, 101 και 503
πέταξε έξω 'Συγγνώμη, προσπαθήστε για την επόμενη φορά'
έξοδος 0;;
esac

#17. Ποιοι διαφορετικοί τύποι βρόχων μπορούν να χρησιμοποιηθούν στο bash;

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

Παράδειγμα:

#!/bin/bash
# Αρχικοποίηση $ n
ν=5
# Υπολογίστε το τετράγωνο του 5-1 χρησιμοποιώντας το βρόχο while
ενώ [ $ n -gt 0 ]
κάνω
τετρ= $((ν*ν))
πέταξε έξω «Το τετράγωνο του$ nείναι$ τετρ'
((n--))
Έγινε

# Υπολογίστε το τετράγωνο του 5-1 χρησιμοποιώντας το βρόχο
Για (( Εγώ=5? Εγώ>>0? Εγώ--))
κάνω
τετρ= $((Εγώ*Εγώ))
πέταξε έξω «Το τετράγωνο του$ iείναι$ τετρ'
Έγινε

# Αρχικοποίηση $ x
Χ=5

# Υπολογίστε το τετράγωνο του 5-1 χρησιμοποιώντας το βρόχο μέχρι
μέχρι [ $ x -ο 0 ]
κάνω
τετρ= $((Χ*Χ))
πέταξε έξω «Το τετράγωνο του$ xείναι$ τετρ'
((Χ--))
Έγινε

#18. Πώς μπορούν οι υπορουτίνες να δηλωθούν και να κληθούν σε bash;

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

Παράδειγμα:

#!/bin/bash
# Αρχικοποιήστε τις μεταβλητές $ x και $ y που είναι καθολικές
Χ=10
και=35

# Δηλώστε τη λειτουργία
myFunc() {
# Δηλώστε την τοπική μεταβλητή $ x
τοπικός Χ=δεκαπέντε

# Εκχωρήστε εκ νέου την καθολική μεταβλητή $ y
και=25

# Υπολογίστε το άθροισμα των $ x και $ y
Με= $((x + y))

# Εκτυπώστε το άθροισμα μιας τοπικής μεταβλητής, $ x και καθολικής μεταβλητής, $ y
πέταξε έξω 'Το άθροισμα του$ xκαι$ yίσο με$ z'
}

# Καλέστε τη λειτουργία
myFunc

# Εκτυπώστε το άθροισμα των καθολικών μεταβλητών, $ x και $ y
πέταξε έξω 'Το άθροισμα του$ xκαι$ yίσο με$ z'

#19. Πώς να κόψετε και να εκτυπώσετε ένα μέρος ενός δεδομένων συμβολοσειράς σε bash;

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

Παράδειγμα:

#!/bin/bash
# Αρχικοποιήστε μια τιμή συμβολοσειράς σε $ string
σειρά=«Python Scripting Language»
# Κόψτε την τιμή συμβολοσειράς από τη θέση 7 στο τέλος της συμβολοσειράς
πέταξε έξω $ {string: 7}
# Κόψτε την τιμή συμβολοσειράς 9 χαρακτήρων από τη θέση 7
πέταξε έξω $ {string: 7: 9}
# Κόψτε την τιμή συμβολοσειράς από 17 σε 20
πέταξε έξω $ {string: 17: -4}

#20. Αναφέρετε μερικούς τρόπους εκτέλεσης αριθμητικών πράξεων στο bash;

Οι αριθμητικές πράξεις μπορούν να γίνουν με πολλούς τρόπους στο bash. «Let», «expr», «bc» και διπλές αγκύλες είναι οι πιο συνηθισμένοι τρόποι εκτέλεσης αριθμητικών πράξεων στο bash. Οι χρήσεις αυτών των εντολών εμφανίζονται στο ακόλουθο παράδειγμα.

Παράδειγμα:

#!/bin/bash
# Υπολογισμός της αφαίρεσης χρησιμοποιώντας expr και επέκταση παραμέτρων
var1= $( expr 120-100 )
# εκτυπώστε το αποτέλεσμα
πέταξε έξω $ var1
# Υπολογίστε την προσθήκη χρησιμοποιώντας την εντολή let
αφήνω var2=200+300
# Εκτυπώστε το rsult
πέταξε έξω $ var2
# Υπολογίστε και εκτυπώστε την τιμή της διαίρεσης χρησιμοποιώντας το 'bc' για να πάρετε το αποτέλεσμα
# με κλασματική τιμή
πέταξε έξω «κλίμακα = 2; 44/7 ' | προ ΧΡΙΣΤΟΥ
# Υπολογίστε την τιμή του πολλαπλασιασμού χρησιμοποιώντας διπλές αγκύλες
var3= $(( 5*3 ))
# Εκτυπώστε το αποτέλεσμα
πέταξε έξω $ var3

#21. Πώς να ελέγξετε ότι υπάρχει κατάλογος ή δεν χρησιμοποιείται bash;

Το Bash έχει πολλές δοκιμαστικές εντολές για να ελέγξει εάν υπάρχει ή όχι αρχείο ή κατάλογος και τον τύπο του αρχείου. '-ρε' Η επιλογή χρησιμοποιείται με μια διαδρομή καταλόγου ως δήλωση υπό όρους για να ελέγξει εάν ο κατάλογος υπάρχει ή όχι στο bash. Εάν ο κατάλογος υπάρχει, τότε θα επιστρέψει true, αλλιώς θα επιστρέψει false.

Παράδειγμα:

#!/bin/bash
# Αντιστοιχίστε τον κατάλογο με διαδρομή στη μεταβλητή, $ path
μονοπάτι='/home/ubuntu/temp'
# Ελέγξτε ότι ο κατάλογος υπάρχει ή όχι
αν [ -ρε '$ path' ]?τότε
# Εκτύπωση μηνύματος εάν υπάρχει ο κατάλογος
πέταξε έξω 'Υπάρχει κατάλογος'
αλλού
# Εκτύπωση μηνύματος εάν ο κατάλογος δεν υπάρχει
πέταξε έξω 'Ο κατάλογος δεν υπάρχει'
είναι

#22. Πώς μπορεί να τερματιστεί ένα σενάριο bash χωρίς να εκτελεστούν όλες οι δηλώσεις;

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

Παράδειγμα:

#!/bin/bash

# Αρχικοποιήστε το όνομα αρχείου στη μεταβλητή, $ filename
όνομα αρχείου='course.txt'

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

# Μετρήστε το μήκος του αρχείου εάν υπάρχει
μήκος='τουαλέτα -ντο $ όνομα αρχείου'

# Εκτυπώστε το μήκος του αρχείου
πέταξε έξω «Συνολικοί χαρακτήρες -$ μήκος'

#23. Ποιες είναι οι χρήσεις των διατάξεων break και continue στο bash;

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

Παράδειγμα:

#!/bin/bash
# Αρχικοποιήστε τη μεταβλητή $ i έως 0 για να ξεκινήσει ο βρόχος
Εγώ=0
# ο βρόχος θα επαναληφθεί 10 φορές
ενώ [ $ i -ο 10 ]
κάνω
# Αυξήστε την τιμή $ i κατά 1
((εγώ ++))
# Εάν η τιμή $ i είναι ίση με 8, τότε τερματίστε τον βρόχο χρησιμοποιώντας τη δήλωση 'break'
αν [ $ i -ισοδύναμο 8 ]?τότε
Διακοπή?
είναι
# Εάν η τιμή του $ i είναι μεγαλύτερη από 6, παραλείψτε την τελευταία πρόταση του βρόχου
# χρησιμοποιώντας τη δήλωση συνέχισης
αν [ $ i -δίνω 6 ]?τότε
να συνεχίσει?
είναι
πέταξε έξω 'η τρέχουσα τιμή του i =$ i'
Έγινε

# Εκτυπώστε την τιμή του $ i μετά τον τερματισμό από τον βρόχο
πέταξε έξω 'Τώρα η τιμή του i =$ i'

#24. Πώς να κάνετε εκτελέσιμο ένα αρχείο bash;

Τα εκτελέσιμα αρχεία bash μπορούν να δημιουργηθούν με τη χρήση 'Chmod' εντολή. Μπορείτε να ορίσετε εκτελέσιμα δικαιώματα χρησιμοποιώντας '+ X' σε chmod εντολή με το όνομα αρχείου του σεναρίου. Τα αρχεία Bash μπορούν να εκτελεστούν χωρίς το ρητό 'κτυπώ δυνατά' εντολή μετά τη ρύθμιση του bit εκτέλεσης για αυτό το αρχείο.

Παράδειγμα:

# Ρυθμίστε το bit εκτέλεσης
$chmod+ x filename.sh

# Εκτελέστε το εκτελέσιμο αρχείο
$./όνομα αρχείου.σ

#25. Αναφέρετε ορισμένες επιλογές που χρησιμοποιούνται για τη δοκιμή αρχείων

Πολλές επιλογές είναι διαθέσιμες στο αρχείο bash για δοκιμή. Κάποιες επιλογές αναφέρονται παρακάτω.

Επιλογή Περιγραφή
-φά Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και είναι ένα κανονικό αρχείο.
-Και Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου μόνο.
-r Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και έχει άδεια ανάγνωσης.
-σε Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και πρέπει να γράψει άδεια.
Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και έχει άδεια εκτέλεσης.
-ρε Χρησιμοποιείται για τον έλεγχο του υπάρχοντος καταλόγου.
Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και είναι ένας συμβολικός σύνδεσμος.
-ΜΙΚΡΟ Χρησιμοποιείται για τον έλεγχο του υπάρχοντος αρχείου και είναι μια πρίζα.
-σι Χρησιμοποιείται για να ελέγξει ότι το αρχείο είναι μια συσκευή μπλοκ.
-μικρό Χρησιμοποιείται για να ελέγξει ότι το αρχείο δεν έχει μηδενικά μεγέθη.
-π.χ Χρησιμοποιήθηκε για να ελέγξει το περιεχόμενο του πρώτου αρχείου είναι νεότερο από το δεύτερο αρχείο. Για παράδειγμα, το file1 -nt file2 υποδεικνύει ότι το αρχείο1 είναι νεότερο από το αρχείο2.
-πολύ Χρησιμοποιήθηκε για να ελέγξει το περιεχόμενο του πρώτου αρχείου είναι παλαιότερο από το δεύτερο αρχείο. Για παράδειγμα, το file1 -ot file2 υποδεικνύει ότι το αρχείο1 είναι παλαιότερο από το αρχείο2.
-εφ Χρησιμοποιείται για να ελέγξει ότι δύο σκληροί σύνδεσμοι αναφέρονται στο ίδιο αρχείο. Για παράδειγμα, το flink1 -ef flink2 υποδεικνύει ότι το flink1 και το flink2 είναι σκληροί σύνδεσμοι και αμφότερα αναφέρονται στο ίδιο αρχείο.

#26. Τι σημαίνει «bc» και πώς μπορεί να χρησιμοποιηθεί αυτή η εντολή στο bash;

Η πλήρης μορφή του «bc» είναι Υπολογιστής Bash για να εκτελέσετε αριθμητικές πράξεις με μεγαλύτερη ακρίβεια στο bash. Το κλασματικό μέρος παραλείπεται εάν οποιαδήποτε αριθμητική λειτουργία γίνει σε bash χρησιμοποιώντας «Έκφραση» εντολή. Το κλασματικό μέρος μπορεί να στρογγυλοποιηθεί επίσης χρησιμοποιώντας κλίμακα αξία με 'προ ΧΡΙΣΤΟΥ' εντολή.

Παράδειγμα:

#!/bin/bash
# Υπολογίστε τη διαίρεση χωρίς την κλασματική τιμή
πέταξε έξω '39 / 7 ' | προ ΧΡΙΣΤΟΥ

# Υπολογίστε τη διαίρεση με την πλήρη κλασματική τιμή
πέταξε έξω '39 / 7 ' | προ ΧΡΙΣΤΟΥ -ο

# Υπολογίστε τη διαίρεση με τρία ψηφία μετά την υποδιαστολή
πέταξε έξω «κλίμακα = 3; 39/7 ' | προ ΧΡΙΣΤΟΥ

#27. Πώς μπορείτε να εκτυπώσετε μια συγκεκριμένη γραμμή ενός αρχείου σε bash;

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

Παράδειγμα:

#!/bin/bash

# Διαβάστε και αποθηκεύστε την πρώτη γραμμή από το αρχείο χρησιμοποιώντας την εντολή `awk` με μεταβλητή NR
γραμμή 1='awk '{if (NR == 1) print $ 0}'course.txt'
# Εκτυπώστε τη γραμμή
πέταξε έξω $ line1

# Διαβάστε τη δεύτερη γραμμή από το αρχείο χρησιμοποιώντας την εντολή `sed` με την επιλογή -n
γραμμή 2='sed 2p course.txt'
# Εκτυπώστε τη γραμμή
πέταξε έξω $ line2

# Διαβάστε την τελευταία γραμμή από το αρχείο χρησιμοποιώντας την εντολή `tail` με την επιλογή -n
γραμμή 3='ουρά 1course.txt'
# Εκτυπώστε το αρχείο
πέταξε έξω $ line3

#28. Τι είναι το IFS;

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

Παράδειγμα:

#!/bin/bash
# Δήλωση ':' ως οριοθέτη για τη διάσπαση του κειμένου
IFS=':'
# Εκχωρήστε δεδομένα κειμένου με ':' σε $ text
κείμενο=«Κόκκινο: Πράσινο: Μπλε»
Το # for loop θα διαβάσει κάθε λέξη μετά τη διάσπαση του κειμένου με βάση το IFS
Γιαωρεςσε $ κείμενο?κάνω
# Εκτυπώστε τη λέξη
πέταξε έξω $ ώρες
Έγινε

#29. Πώς να μάθετε το μήκος των δεδομένων συμβολοσειράς;

«Expr», «wc» και ‘Awk’ Οι εντολές μπορούν να χρησιμοποιηθούν για να μάθετε το μήκος μιας συμβολοσειράς στο bash. «Έκφραση» και ‘Awk’ χρήση εντολών μήκος επιλογή, 'Τουαλέτα' χρησιμοποιεί τις εντολές '-ΝΤΟ' επιλογή μέτρησης του μήκους της συμβολοσειράς.

Παράδειγμα:

Οι χρήσεις των παραπάνω εντολών εμφανίζονται στο παρακάτω σενάριο.

#!/bin/bash
# Μετρήστε το μήκος χρησιμοποιώντας την επιλογή μήκους `expr`
πέταξε έξω 'exprμήκος'Μου αρέσει η PHP''
# Μετρήστε το μήκος χρησιμοποιώντας την εντολή `wc`
πέταξε έξω 'Μου αρέσει ο Bash' | τουαλέτα -ντο
# Μετρήστε το μήκος χρησιμοποιώντας την εντολή `awk`
πέταξε έξω «Μου αρέσει η Python» | awk '{μήκος εκτύπωσης}'

#30 Πώς να εκτελέσετε πολλαπλά σενάρια bash παράλληλα;

Πολλαπλά σενάρια bash μπορούν να εκτελεστούν παράλληλα με τη χρήση όχι εντολή. Το πώς μπορούν να εκτελεστούν παράλληλα πολλά αρχεία bash από ένα φάκελο φαίνεται στο ακόλουθο παράδειγμα.

Παράδειγμα:

# Εκχωρήστε ένα όνομα φακέλου με τη διαδρομή στη μεταβλητή $ dir που περιέχει
# πολλαπλά αρχεία bash
σε εσένα='home/Ubuntu/temp'

Το # for loop θα διαβάσει κάθε αρχείο από τον κατάλογο και θα εκτελεστεί παράλληλα
Γιαγραφήσεσε εσένα/ *.SH
κάνω
όχι κτυπώ δυνατά '$ script' &
Έγινε

Συμπέρασμα:

Οι περισσότερες βασικές ερωτήσεις συνέντευξης bash script περιγράφονται σε αυτό το άρθρο για τους αναγνώστες που θέλουν να ξεκινήσουν μια καριέρα ως προγραμματιστής bash.