ich den Namen einer Variablen aus dem Skript Benutzer als erstes Argument bekommen, und ich echo der Wert der Variablen auf die Konsole zurück:Namen einer Variablen als Eingabe holen und die Variable ändern, um mit diesem Namen
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
Das funktioniert super!
Was ich nicht arbeiten kann, ist, wenn ich diese Variable in den Wert des zweiten Arguments vom Benutzer ändern möchte. Ein Beispiel mit einem Syntaxfehler ist:
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
echo "I will now try to change the value into $2."
(!variablename}=$2
# The above line generates: {!variablename}=2: command not found
Mit anderen Worten: Wenn es möglich ist, wie bekomme ich eine Variable Namen vom Benutzer und sowohl Lese (bereits gelöst) und Schreiben auf die Variable?
Nein, Eval ist der richtige Weg zu gehen. Sie müssen sich jedoch um Leerzeichen in $ 2 sorgen - und einfache Anführungszeichen und doppelte Anführungszeichen und umgekehrte Schrägstriche. –
Danke, dass du mich bestätigt hast, ich bin auf dem richtigen Weg. Ich werde eine Parametervalidierung durchführen, wenn ich etwas von irgendeinem Wiederverwendbarkeitswert erstelle. Im Moment versuche ich hauptsächlich, Bash genauer zu verstehen. :-) –