Bash:
De lengte van een string vinden
Hoe doe je dat:
Het #
symbool klaart de klus in bash. Gebruik het met parameterexpansie. Zo werkt het:
my_string="Hallo, Wereld!"
string_length=${#my_string}
echo $string_length
Voorbeelduitvoer:
13
Diepere duik
Vroeger gebruikten mensen expr
of externe tools zoals wc -m
, maar ingebouwde Bash-functies veranderden het spel. De syntax ${#var}
is onderdeel van parameterexpansie geïntroduceerd in Bash. Het is snel en efficiënt omdat het geen subshell opstart of een extern programma aanroept.
Alternatieven? Zeker, die zijn er:
expr length "$my_string"
geeft je hetzelfde resultaat, maar het is een beetje ouderwets.echo -n $my_string | wc -m
gebruiktwc
om te tellen, maar dat is overkill voor eenvoudige taken.
Details, details… Wanneer je ${#my_string}
gebruikt, krijg je standaard de lengte in bytes. Als je tekst op de unicode-kant van de straat wandelt, moet je misschien rekening houden met multi-byte karakters. Dat is wanneer dingen complexer worden.
Zie ook
Duik in de handleidingpagina’s met man bash
om de details van parameterexpansie te begrijpen. Voor degenen die zich verdiepen in het behandelen van strings voorbij de basis ASCII, biedt de Advanced Bash-Scripting Guide enkele inzichten: https://www.tldp.org/LDP/abs/html/. En uit liefde voor het leren, hou https://www.gnu.org/software/bash/manual/ in de gaten voor het laatste nieuws over Bash.