logo

Set – $VARIABLE in Bash

In der Welt des Bash-Scriptings stoßen Sie möglicherweise auf den Phrasensatz – $VARIABLE. Aber was bedeutet es?

Im einfachsten Fall wird set – $VARIABLE verwendet, um den Wert einer Bash-Variablen in einzelne Wörter aufzuteilen, wobei der Internal Field Separator (IFS) als Trennzeichen verwendet wird. Wenn VARIABLE beispielsweise den Wert a b c hat, würde die Ausführung von set – $VARIABLE die Positionsparameter auf a, b und c setzen.



arraylist.sort

Dies mag auf den ersten Blick nicht besonders nützlich erscheinen, kann aber im richtigen Kontext ein wirkungsvolles Werkzeug sein. Ein häufiger Anwendungsfall ist die Verarbeitung von Befehlszeilenargumenten, die an ein Bash-Skript übergeben werden. Wenn Sie ein Bash-Skript ausführen, stellen die Positionsparameter (d. h. , usw.) die an das Skript übergebenen Argumente dar. Durch die Verwendung von set – $VARIABLE können Sie ein einzelnes Argument problemlos in mehrere Wörter aufteilen und so diese einfacher verarbeiten.

Hier ist ein Beispiel dafür, wie dies verwendet werden könnte:

#!/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>

Wenn Sie dieses Skript speichern als example.sh und führen Sie es wie folgt aus:

./example.sh 'a b c'>

Ausgabe:



a b c>

Schleife über die Elemente einer Liste, die in einer Variablen gespeichert sind

Ein weiterer häufiger Anwendungsfall für set – $VARIABLE ist die Schleife über die Elemente einer Liste, die in einer Variablen gespeichert sind. Zum Beispiel:

# 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>

Ausgabe:

a b c>

Es ist erwähnenswert, dass set – $VARIABLE nur funktioniert, wenn der Wert von VARIABLE eine einzelne Zeichenfolge ist. Wenn VARIABLE ein Array ist, müssen Sie einen anderen Ansatz verwenden. Eine Möglichkeit besteht darin, die Syntax printf „%s “ ${VARIABLE[@]} zu verwenden, die das Array in eine Reihe separater Wörter erweitert, die jeweils durch ein neues Zeilenzeichen getrennt sind.



Mission Impossible alle Filme

Hier ist ein Beispiel dafür, wie dies verwendet werden könnte:

#!/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>

Ausgabe:

a b c>

Abschluss

Zusammenfassend lässt sich sagen, dass set – $VARIABLE eine nützliche Bash-Funktion ist, mit der Sie den Wert einer Variablen in einzelne Wörter aufteilen können, indem Sie das IFS als Trennzeichen verwenden. Es kann zum Verarbeiten von Befehlszeilenargumenten oder zum Durchlaufen der in einer Variablen gespeicherten Elemente einer Liste verwendet werden. Während es nur mit einzelnen Strings funktioniert, gibt es alternative Ansätze, die mit Arrays verwendet werden können. Zu verstehen, wie set – $VARIABLE funktioniert und wann es verwendet werden sollte, kann eine wertvolle Ergänzung Ihres Bash-Scripting-Toolkits sein.