• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

toupper / tolower

Hänsel

Erdapfel
Registriert
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}"?
 

martinv2

Doppelter Prinzenapfel
Registriert
14.04.12
Beiträge
437
Du kannst tr verwenden, z.B. Groß- auf Kleinschreibung:

tr '[:upper:]' '[:lower:]' <<<$1
 
  • Like
Reaktionen: Dr.Death