Πώς να χειριστείτε ορίσματα γραμμής εντολών στο Bash;

Pos Na Cheiristeite Orismata Grammes Entolon Sto Bash



Στο Linux, χρησιμοποιούμε ορίσματα γραμμής εντολών ως είσοδο για το σενάριο bash. Το Bash μπορεί να λάβει αυτά τα ορίσματα της γραμμής εντολών διαδοχικά και να τα αναλύσει ως επιλογή. Αυτά τα ορίσματα σάς επιτρέπουν να επηρεάζετε δυναμικά τις ενέργειες και την έξοδο του σεναρίου.

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







Πώς να χειριστείτε ορίσματα γραμμής εντολών στο Bash;

Υπάρχουν διάφοροι τρόποι χειρισμού των args της γραμμής εντολών στο Bash, οπότε ας ρίξουμε μια ματιά σε αυτά για να λάβουμε σύντομες πληροφορίες:



Η συνάρτηση getopt



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





  • Σύντομα επιχειρήματα: Αυτά είναι τα επιχειρήματα ενός χαρακτήρα που ακολουθούνται από παύλα. Για παράδειγμα, -a, -l, -h, κ.λπ., είναι μερικά παραδείγματα μεμονωμένων ορισμάτων.

  • Μακριά επιχειρήματα: Αυτά είναι τα ορίσματα πολλών χαρακτήρων που ακολουθούνται από διπλή παύλα. Υπάρχουν διάφορα παραδείγματα μακροσκελής επιχειρημάτων, όπως –όλα, –λίστα, –βοήθεια κ.λπ.

Ας πάρουμε ένα παράδειγμα όπου θα χειριστούμε τα ορίσματα της γραμμής εντολών χρησιμοποιώντας το βοηθητικό πρόγραμμα getopt. Έχουμε δημιουργήσει ένα σενάριο bash με το όνομα 'getopt.sh' που περιέχει τις ακόλουθες πληροφορίες:



!/ αποθήκη / κτυπώ δυνατά

ενώ παίρνει 'Α Β Γ Δ:' Λεπτομέριες; κάνω

υπόθεση ' $λεπτομέρειες ' σε

ΕΝΑ )

ηχώ «Όνομα Πολίτη είναι $OPTARG ' ;;

σι )

ηχώ «Η ταυτότητα του πολίτη είναι $OPTARG ' ;;

ντο )

ηχώ «Ο τόπος γέννησης είναι $OPTARG ' ;;

ρε )

ηχώ «Επάγγελμα είναι $OPTARG ' ;;

* )

έξοδος 1 ;;

esac

Ολοκληρώθηκε

βάρδια ' $(($OPTING -1) )'



αν [ ! -Με $1 ] ; έπειτα

ηχώ 'Οικογενειακή κατάσταση $1'

αλλού

ηχώ 'Δεν υπάρχουν καταχωρήσεις'

έξοδος 1

είναι



αν [ ! -Με $2 ] ; έπειτα

ηχώ 'Μέλη οικογένειας $2'

είναι

Τώρα ας εκτελέσουμε το σενάριο με τα απαιτούμενα ορίσματα στην είσοδο:

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

Χρήση σημαιών

Οι σημαίες δεν είναι παρά μεμονωμένοι χαρακτήρες που προηγούνται από παύλες(-). Όταν περνάμε τα ορίσματα χρησιμοποιώντας τη συνάρτηση getopt, χρησιμοποιούμε σημαίες. -a, -b, -c είναι μερικά παραδείγματα σημαιών. Για παράδειγμα,  ένα σενάριο απαιτεί το όνομα, την ταυτότητα, τον τόπο, την ηλικία και το επάγγελμα ενός πολίτη. Ως εκ τούτου, χρησιμοποιήσαμε σημαίες j, k, l, m, n, για να ορίσουμε ταυτόχρονα το όνομα, την ταυτότητα, τον τόπο, την ηλικία και το επάγγελμα του πολίτη:

#!/bin/bash

Ενώ παίρνει j:k:l:m:n: flag_info

κάνω

υπόθεση ' ${flag_info} ' σε
< ol >
< ότι > ι ) όνομα πολίτη = ${OPTARG} ;; ότι >
< ότι > κ ) πολίτης = ${OPTARG} ;; ότι >
< ότι > μεγάλο ) θέση = ${OPTARG} ;; ότι >
< ότι > Μ ) ηλικία = ${OPTARG} ;; ότι >
< ότι > n ) κατοχή = ${OPTARG} ;; ότι >
ol >
esac

Ολοκληρώθηκε

ηχώ 'Ακολουθούν τα στοιχεία που εισάγατε:'

ηχώ «Όνομα Πολίτη: $citizenname ' ;

ηχώ «Ταυτότητα πολίτη: $citizenid ' ;

ηχώ 'Θέση: $τόπος ' ;

ηχώ 'Ηλικία: $ηλικία ' ;

ηχώ 'Κατοχή: $κατοχή ' ;

Το σενάριο θα δώσει το ακόλουθο αποτέλεσμα στο τερματικό:

. /< γραφή > .SH -j Ντάνι 476 -μεγάλο Τορόντο 25 -n Συγγραφέας

Χρησιμοποιώντας [email προστατεύεται] Με βρόχους

Ο ' [email προστατεύεται] Η μεταβλητή δεν είναι παρά ο πίνακας όλων των ορισμάτων εισόδου. Μπορούμε να περάσουμε οποιονδήποτε αριθμό εισόδων χρησιμοποιώντας το ' [email προστατεύεται] ” μεταβλητή. Μπορείτε να χρησιμοποιήσετε αυτήν τη μεταβλητή ως βρόχο για να επαναλάβετε τα ορίσματα. Ο ' [email προστατεύεται] Η μεταβλητή είναι χρήσιμη τότε. δεν γνωρίζετε το μέγεθος εισόδου και δεν μπορείτε να λάβετε τα επιχειρήματα θέσης. Ως εκ τούτου, μπορείτε να χρησιμοποιήσετε το ' [email προστατεύεται] ”  αντί να ορίζετε τη συνάρτηση getopt ξανά και ξανά. Εδώ είναι ένα παράδειγμα χρήσης βρόχων και [email προστατεύεται] μαζί σε σενάριο:

#!/bin/bash

σε ένα = ( «$ @ )



αν [ $# -gt 1 ]

έπειτα



Προσθήκη =$ ( ( ${num[0]} + ${αριθμός[1]} ) )

ηχώ 'Η πρόσθεση όλων των αριθμών είναι: $add '



αφαίρεση =$ ( ( ${num[0]} - ${αριθμός[1]} - ${αριθμός[2]} ) )

ηχώ «Η αφαίρεση των αριθμών είναι: $αφαίρεση '



πολλαπλασιάζω =$ ( ( ${num[0]} * ${αριθμός[1]} * ${αριθμός[2]} ) )

ηχώ «Ο πολλαπλασιασμός των αριθμών είναι: $πολλαπλασιάζω '



διαίρεση 1 =$ ( ( ${num[0]} / ${αριθμός[1]} ) )

ηχώ «Τμήμα του ${num[0]} και ${αριθμός[1]} είναι: $διαίρεση1 '



διαίρεση2 =$ ( ( ${αριθμός[1]} / ${αριθμός[2]} ) )

ηχώ 'Διαίρεση της ${αριθμός[1]} και ${αριθμός[2]} είναι: $διαίρεση2 '



διαίρεση 3 =$ ( ( ${num[0]} / ${αριθμός[2]} ) )

ηχώ 'Διαίρεση της ${num[0]} και ${αριθμός[2]} είναι: $διαίρεση2 '



είναι

Το παραπάνω σενάριο εκτελεί διαφορετικούς αριθμητικούς υπολογισμούς με βάση τα ορίσματα της γραμμής εντολών. Για παράδειγμα, έχουμε εισαγάγει τα 50, 35 και 15 ως είσοδο:

Χρήση παραμέτρων θέσης

Μπορείτε να αποκτήσετε πρόσβαση στις παραμέτρους θέσης καθώς έχουν πρόσβαση πρώτα στο $1, μετά στα $2 και ούτω καθεξής. Για παράδειγμα, ας δημιουργήσουμε ένα σενάριο που διαβάζει ένα όνομα ως πρώτο όρισμα και μετά μια πόλη ως δεύτερο. Ωστόσο, αν περάσετε πρώτα την πόλη και μετά το όνομα, τότε θεωρεί το όνομα ως πόλη και το αντίστροφο. Ας κάνουμε μια βαθύτερη κατάδυση στο ακόλουθο σενάριο για να κατανοήσουμε αυτήν την έννοια:

#!/bin/bash

ηχώ 'Εδώ είναι τα στοιχεία που εισάγατε'

ηχώ 'όνομα $1'

ηχώ 'πόλη $2'

Πρέπει να προσθέσετε το όνομα και την πόλη τη στιγμή της εκτέλεσης του σεναρίου στο τερματικό:

Τυλίγοντας

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