logo

Set – $VARIABLE in bash

In de wereld van bash-scripting kom je misschien de fraseset tegen: $VARIABLE. Maar wat betekent het?

In de meest elementaire vorm wordt set – $VARIABLE gebruikt om de waarde van een bash-variabele in afzonderlijke woorden te splitsen, waarbij de Internal Field Separator (IFS) als scheidingsteken wordt gebruikt. Als VARIABLE bijvoorbeeld de waarde a b c heeft, dan zou het uitvoeren van set – $VARIABLE de positionele parameters instellen op a, b en c.



mysql kolomtype wijzigen

Dit lijkt op het eerste gezicht misschien niet bijzonder nuttig, maar het kan een krachtig hulpmiddel zijn als het in de juiste context wordt gebruikt. Een veelvoorkomend gebruiksscenario is het verwerken van opdrachtregelargumenten die aan een bash-script zijn doorgegeven. Wanneer u een bash-script uitvoert, vertegenwoordigen de positionele parameters (dat wil zeggen , , enz.) de argumenten die aan het script worden doorgegeven. Door set – $VARIABLE te gebruiken, kunt u eenvoudig een enkel argument in meerdere woorden opsplitsen, zodat u deze gemakkelijker kunt verwerken.

Hier is een voorbeeld van hoe dit kan worden gebruikt:

#!/bin/bash # Set the value of VARIABLE to the first command-line argument VARIABLE='' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>

Als u dit script opslaat als example.sh en voer het als volgt uit:

./example.sh 'a b c'>

Uitgang:



a b c>

Loop over de elementen van een lijst die in een variabele zijn opgeslagen

Een ander veelvoorkomend gebruik van set – $VARIABLE is het doorlussen van de elementen van een lijst die in een variabele zijn opgeslagen. Bijvoorbeeld:

# Set the value of VARIABLE to 'a b c' VARIABLE='a b c' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>

Uitgang:

a b c>

Het is de moeite waard om op te merken dat set – $VARIABLE alleen werkt als de waarde van VARIABLE een enkele string is. Als VARIABLE een array is, moet u een andere aanpak gebruiken. Eén optie is om de syntaxis printf ‘%s ’ ${VARIABLE[@]} te gebruiken, die de array uitbreidt naar een reeks afzonderlijke woorden, elk gescheiden door een nieuw regelteken.



Hier is een voorbeeld van hoe dit kan worden gebruikt:

#!/bin/bash # Set the value of VARIABLE to an array containing 'a', 'b', and 'c' VARIABLE=('a' 'b' 'c') # Expand the array into a series of separate words set - $(printf '%s
' '${VARIABLE[@]}') # Loop over the words for word in '$@'; do echo '$word' done>

Uitgang:

abstracte klasse Java
a b c>

Conclusie

Kortom, set – $VARIABLE is een handige bash-functie waarmee je de waarde van een variabele in afzonderlijke woorden kunt splitsen, met behulp van de IFS als scheidingsteken. Het kan worden gebruikt om opdrachtregelargumenten te verwerken of om de elementen van een lijst die in een variabele zijn opgeslagen, door te lussen. Hoewel het alleen met afzonderlijke strings werkt, zijn er alternatieve benaderingen die met arrays kunnen worden gebruikt. Begrijpen hoe set – $VARIABLE werkt en wanneer u het moet gebruiken, kan een waardevolle aanvulling zijn op uw bash-scriptingtoolkit.