Hoe om te gaan met opdrachtregelargumenten in Bash?

Hoe Om Te Gaan Met Opdrachtregelargumenten In Bash



In Linux gebruiken we opdrachtregelargumenten als invoer voor het bash-script. Bash kan deze opdrachtregelargumenten opeenvolgend nemen en ze als optie ontleden. Met deze argumenten kunt u de acties en de uitvoer van het script dynamisch beïnvloeden.

U kunt deze argumenten anders configureren om de invoer en uitvoer te beïnvloeden. Daarom is het essentieel om commandoregelargumenten in bash af te handelen, maar veel nieuwe gebruikers moeten leren hoe ze dit moeten doen. Dus in deze handleiding zullen we verschillende manieren uitleggen om opdrachtregelargumenten in bash af te handelen.







Hoe om te gaan met opdrachtregelargumenten in Bash?

Er zijn verschillende manieren om commandoregel-args in Bash af te handelen, dus laten we ze eens bekijken voor korte informatie:



De getopt-functie



De getopt-functie is handig omdat het de opties en syntaxis biedt voor het definiëren en ontleden van argumenten in bash. Het is een ingebouwde functie van Linux die u kunt gebruiken bij het maken van een databasebestand of rapport in een specifiek formaat op basis van de argumenten. De getopt-functie helpt bij het ontleden van de korte opdrachtregelargumenten omdat er twee soorten argumenten zijn:





  • Korte argumenten: Dit zijn de argumenten van één teken gevolgd door een koppelteken. Bijvoorbeeld, -a, -l, -h, etc. zijn enkele voorbeelden van enkele argumenten.

  • Lange argumenten: Dit zijn de argumenten met meerdere tekens gevolgd door een dubbel koppelteken. Er zijn verschillende voorbeelden van lange argumenten, zoals –all, –list, –help, etc.

Laten we een voorbeeld nemen waarbij we de opdrachtregelargumenten zullen afhandelen met behulp van het getopt-hulpprogramma. We hebben een bash-script gemaakt met de naam 'getopt.sh' dat de volgende informatie bevat:



!/ bak / bashen

terwijl getopt 'A:B:C:D:' details; doen

geval ' $gegevens ' in

EEN )

echo 'Burgernaam is $OPTARG ' ;;

B )

echo 'Burger-ID is $OPTARG ' ;;

C )

echo 'Geboorteplaats is $OPTARG ' ;;

D )

echo 'Beroep is $OPTARG ' ;;

* )

Uitgang 1 ;;

esac

gedaan

verschuiving ' $(($OPTEREN -1) )'



als [ ! -Met $ 1 ] ; dan

echo 'Burgerlijke staat $ 1'

anders

echo 'Geen toegang'

Uitgang 1

zijn



als [ ! -Met $ 2 ] ; dan

echo 'Familieleden $ 2'

zijn

Laten we nu het script uitvoeren met de vereiste argumenten in de invoer:

Zoals je in de bovenstaande afbeelding kunt zien, voeren we het script alleen uit met getopt-functies en voegen we vervolgens normale argumenten toe om het volledige resultaat te krijgen.

Vlaggen gebruiken

Vlaggen zijn niets anders dan enkele tekens voorafgegaan door koppeltekens (-). Wanneer we de argumenten doorgeven met behulp van de getopt-functie, gebruiken we vlaggen. -a, -b, -c zijn enkele voorbeelden van vlaggen. Een script vereist bijvoorbeeld de naam, het identiteitsbewijs, de plaats, de leeftijd en het beroep van een burger. Daarom hebben we vlaggen j, k, l, m, n gebruikt om tegelijkertijd de naam, het identiteitsbewijs, de plaats, de leeftijd en het beroep van de burger te definiëren:

#!/bin/bash

Terwijl getopt j:k:l:m:n: flag_info

doen

geval ' ${flag_info} ' in
< ol >
< Dat > j ) burgernaam = ${OPTARG} ;; Dat >
< Dat > k ) burgerid = ${OPTARG} ;; Dat >
< Dat > ik ) plaats = ${OPTARG} ;; Dat >
< Dat > m ) leeftijd = ${OPTARG} ;; Dat >
< Dat > n ) bezigheid = ${OPTARG} ;; Dat >
ol >
esac

gedaan

echo 'Hier zijn de ingevoerde gegevens:'

echo 'Burgernaam: $burgernaam ' ;

echo 'Burger-ID: $burgerid ' ;

echo 'Plaats: $ plaats ' ;

echo 'Leeftijd: $ leeftijd ' ;

echo 'Bezigheid: $ bezetting ' ;

Het script geeft het volgende resultaat in de terminal:

. /< script > .sh -j Danny -k 476 -l Toronto -m 25 -n Auteur

Gebruik makend van [e-mail beveiligd] Met Lussen

De ' [e-mail beveiligd] ”variabele is niets anders dan de array van alle invoerargumenten. We kunnen een willekeurig aantal ingangen doorgeven met behulp van de ' [e-mail beveiligd] ” variabel. U kunt deze variabele gebruiken als een lus om de argumenten te herhalen. De ' [e-mail beveiligd] ”variabele komt dan goed van pas; u kent de invoergrootte niet en kunt de positionele argumenten niet aannemen. Daarom kunt u de ' [e-mail beveiligd] ”  in plaats van de getopt-functie steeds opnieuw te definiëren. Hier is een voorbeeld van het gebruik van lussen en [e-mail beveiligd] samen in een script:

#!/bin/bash

op een = ( “$ @ )



als [ $# - gt 1 ]

dan



toevoegen =$ ( ( ${getal[0]} + ${getal[1]} ) )

echo 'Optellen van alle getallen is: $toevoegen '



aftrekken =$ ( ( ${getal[0]} - ${getal[1]} - ${getal[2]} ) )

echo 'Aftrekken van de getallen is: $ aftrekken '



vermenigvuldigen =$ ( ( ${getal[0]} * ${getal[1]} * ${getal[2]} ) )

echo 'Vermenigvuldiging van de getallen is: $vermenigvuldigen '



divisie1 =$ ( ( ${getal[0]} / ${getal[1]} ) )

echo 'Divisie van de ${getal[0]} en ${getal[1]} is: $divisie1 '



divisie2 =$ ( ( ${getal[1]} / ${getal[2]} ) )

echo 'Afdeling van ${getal[1]} en ${getal[2]} is: $divisie2 '



divisie3 =$ ( ( ${getal[0]} / ${getal[2]} ) )

echo 'Afdeling van ${getal[0]} en ${getal[2]} is: $divisie2 '



zijn

Het bovenstaande script voert verschillende rekenkundige berekeningen uit op basis van de opdrachtregelargumenten. We hebben bijvoorbeeld 50, 35 en 15 ingevoerd als invoer:

Positionele parameters gebruiken

U hebt toegang tot de positionele parameters aangezien deze eerst toegang hebben tot $1, dan $2, enzovoort. Laten we bijvoorbeeld een script maken dat een naam leest als het eerste argument en vervolgens een stad als het tweede. Als je echter eerst de stad passeert en dan de naam, dan beschouwt hij de naam als de stad en vice versa. Laten we dieper ingaan op het volgende script om dit concept te begrijpen:

#!/bin/bash

echo 'Hier zijn de ingevoerde gegevens'

echo 'noem $1'

echo 'stad $2'

U moet de naam en stad toevoegen op het moment dat u het script in de terminal uitvoert:

Afsluiten

Dit is alles wat u moet weten over de methoden om opdrachtregelargumenten in bash af te handelen. We hebben verschillende benaderingen uitgelegd die u kunt proberen met de juiste voorbeelden. Er zijn verschillende commando's als u argumenten in het script wilt toevoegen. Zorg er dus voor dat je Linuxhint bezoekt om er meer over te weten te komen.