Bash - Umlaute bei Variablen... geht nicht ?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ren22

Bash - Umlaute bei Variablen... geht nicht ?

Beitrag von ren22 » 16.05.2020 05:58:48

Hallo,

ich wollte gerne eine Variable mit dem Namen "Zähler" verwenden, aber leider scheitert es an einer Stelle wo ich nicht weiß warum.
Kleines Beispiel:

Code: Alles auswählen

#!/bin/bash

export LC_ALL="de_DE.utf-8"

ZÄHLER="0"
echo "$ZÄHLER"
Ausgabe:
./script_umlaute.sh: Zeile 5: ZÄHLER=0: Kommando nicht gefunden.
ÄHLER

locale:

Code: Alles auswählen

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8
Wo ist den der Fehler ?
Dankeschön

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Bash - Umlaute bei Variablen... geht nicht ?

Beitrag von Meillo » 16.05.2020 07:36:02

LOL. :-D

Es gibt manche Programmiersprachen bei denen Unicode-Bezeichner moeglich sind, die sind aber keineswegs der Normalfall, sondern die Minderheit. Die Locale-Einstellungen aendern daran nichts.

Vermeide den Umlaut und dein Code wird funktionieren.


Btw: Es gibt keine Notwendigkeit in der Shell Variablennamen gross zu schreiben, vielmehr besteht dadurch Kollisionsgefahr mit Systemvariablen. Es ist vielmehr zu empfehlen, die Variablen der eigenen Scripte klein zu schreiben.
Use ed once in a while!

Benutzeravatar
Gharika
Beiträge: 209
Registriert: 28.09.2004 16:51:51
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Bash - Umlaute bei Variablen... geht nicht ?

Beitrag von Gharika » 16.05.2020 07:39:56

Bash und wahrscheinlich auch alle anderen Shells erlauben nur a-z, A-Z, 0-9 und Unterstrich als gültige Variablenbezeichner, daher Ä geht nicht.

https://www.tutorialspoint.com/unix/uni ... iables.htm
Variable Names
The name of a variable can contain only letters (a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _).
Beleidigungen sind die Argumente derer, die unrecht haben.

-- Jean Jacques Rousseau

Antworten