toupper / tolower

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Hänsel, 27.06.18.

  1. Hänsel

    Hänsel Erdapfel

    Dabei seit:
    27.10.14
    Beiträge:
    2
    Hallo. :)

    Ich beschäftige mich derzeit primär damit, mein Bash-Scripting zu verbessern. In diesem Zusammenhang ist ein Problem aufgetaucht.

    Ein Mac-User schreibt, dass die bash-spezifischen String-Umwandlungen "${1,,}" (liefert den Wert von $1 in Kleinbuchstaben) und "${1^^}" (... in Großbuchstaben) unter MacOS nicht funktioniert hätten. "GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)"

    Als Lösung hat jemand vorgeschlagen, tolower und toupper zu benutzen und dies durch folgendes Beispiel-Script illustriert.
    1. #!/bin/bash
    2. if grep "$1" /etc/passwd > /dev/null 2>&1
    3. then
    4. echo "Ja, den Benutzer $1 gibt es."
    5. elif grep "tolower{$1}" /etc/passwd > /dev/null 2>&1
    6. then
    7. echo "Ja, der Benutzer toupper{$1} wurde nur mit Kleinbuchstaben gefunden."
    8. elif grep "toupper{$1}" /etc/passwd > /dev/null 2>&1
    9. then
    10. echo "Ja, der Benutzer toupper{$1} wurde nur mit Großbuchstaben gefunden."
    11. else
    12. echo "Nein, den Benutzer $1 gibt es nicht"
    13. fi
    Ich kann bisher trotz einigem Suchen nicht bestätigt finden, dass dies klappen würde. Unter Linux, einem Debian-Derivat, finde ich tolower und toupper nur als Systemaufrufe, nicht als Terminalbefehle. Auch die bash selber scheint damit nichts anfangen zu können. Weiters habe ich auf meinem Rechner kein Paket gefunden, dass diese Befehle liefert, wiewohl ich Funktionen dieses Namens aus bestimmten Programmiersprachen kenne.
    • Wie ist es unter MacOS?
    • Funktioniert die oben zitierte Lösung auf einem Mac normalerweise?
    • Gibt es dort die Form "tolower{$1}"?
     
  2. martinv2

    martinv2 Doppelter Prinzenapfel

    Dabei seit:
    14.04.12
    Beiträge:
    436
    Du kannst tr verwenden, z.B. Groß- auf Kleinschreibung:

    tr '[:upper:]' '[:lower:]' <<<$1
     
    Dr.Death gefällt das.