W świecie skryptów basha możesz natknąć się na zestaw fraz – $VARIABLE. Ale co to oznacza?
W najbardziej podstawowej wersji set – $VARIABLE służy do dzielenia wartości zmiennej bash na osobne słowa, używając wewnętrznego separatora pól (IFS) jako separatora. Na przykład, jeśli ZMIENNA ma wartość a b c, wówczas uruchomienie set – $VARIABLE ustawi parametry pozycyjne na a, b i c.
przekonwertuj ciąg na Java
Na pierwszy rzut oka może się to nie wydawać szczególnie przydatne, ale może być potężnym narzędziem, jeśli zostanie użyte we właściwym kontekście. Jednym z typowych przypadków użycia jest przetwarzanie argumentów wiersza poleceń przekazywanych do skryptu bash. Kiedy uruchamiasz skrypt bash, parametry pozycyjne (tj. 1 $, 2 $ itd.) reprezentują argumenty przekazywane do skryptu. Używając set – $VARIABLE, możesz łatwo podzielić pojedynczy argument na wiele słów, co ułatwia ich przetwarzanie.
Oto przykład, jak można to wykorzystać:
#!/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>
Jeśli zapiszesz ten skrypt jako example.sh i uruchom go w ten sposób:
./example.sh 'a b c'>
Wyjście:
a b c>
Wykonaj pętlę po elementach listy przechowywanych w zmiennej
Innym częstym przypadkiem użycia set – $VARIABLE jest zapętlenie elementów listy przechowywanych w zmiennej. Na przykład:
# 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>
Wyjście:
a b c>
Warto zauważyć, że set – $VARIABLE działa tylko wtedy, gdy wartość VARIABLE jest pojedynczym ciągiem znaków. Jeśli ZMIENNA jest tablicą, musisz zastosować inne podejście. Jedną z opcji jest użycie składni printf „%s ” ${VARIABLE[@]}, która rozszerza tablicę na serię oddzielnych słów, każde oddzielone znakiem nowej linii.
Oto przykład, jak można to wykorzystać:
zajebisty język
#!/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>
Wyjście:
a b c>
Wniosek
Podsumowując, set – $VARIABLE to przydatna funkcja bash, która pozwala podzielić wartość zmiennej na osobne słowa, używając IFS jako ogranicznika. Można go używać do przetwarzania argumentów wiersza poleceń lub do zapętlania elementów listy przechowywanych w zmiennej. Chociaż działa to tylko z pojedynczymi ciągami, istnieją alternatywne podejścia, które można zastosować w przypadku tablic. Zrozumienie, jak działa set – $VARIABLE i kiedy go używać, może być cennym dodatkiem do zestawu narzędzi do tworzenia skryptów w bashu.