GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Variable mit Variablenwert als Teil des neuen Variablennamens erstellen?

Ich versuche, eine neue Variable zu erstellen, indem ich den Wert einer vorhandenen Variablen als Teil des Variablennamens verwende.

filemsg"$word1"=" "

Ich habe es auch versucht

filemsg$word1=" "

filemsg${word1}=" "

bei allen Versuchen erhalte ich Folgendes, wenn diese Zeile ausgeführt wird,

cicserrors.sh[45]: filemsgCICS= : not found [No such file or directory]

Akzeptierte Antwort:

Verwenden Sie eval :

filemsgCICS=foo
word1=CICS
eval "echo "$filemsg$word1"" # => foo
eval "filemsg$word1=bar"
echo "$filemsgCICS" # => bar

aber überlegen Sie es sich zweimal, ob Sie es wirklich so brauchen.

Ein anderer Weg in ksh93 ist namerefs zu verwenden:

word1=CICS
nameref v=filemsg$word1
v="xxx" 
echo "$filemsgCICS" # => xxx

Noch mehr fiese Hacks wie diesen finden Sie hier.


Linux
  1. Apache – Erstellen eines *.local SSL-Zertifikats?

  2. Format von Cookies bei Verwendung von Wget?

  3. Grundlegende Division mit Variable und Ganzzahl?

  4. Java Kann keine Verbindung zum X11-Fensterserver herstellen, wenn „localhost:10.0“ als Wert der DISPLAY-Variablen verwendet wird

  5. So extrahieren Sie einen Wert (in einer bestimmten Zeile und Spalte) aus einer Datei und weisen ihn einer neuen Variablen zu

Konfigurieren Sie die Datenbankverbindung mithilfe der Umgebungsvariablen in Rails

Verwendung von „${a:-b}“ für die Variablenzuweisung in Skripten?

Erstellen einer MySQL-Datenbank in cPanel

Neues VPS einrichten

Erstellen eines neuen Verzeichnisses in C

Verwendung von awk mit Spaltenwertbedingungen