je reçois le nom d'une variable de l'utilisateur de script comme premier argument et je fais écho à la valeur de ladite variable à la console:Obtenir le nom d'une variable en entrée et changer la variable avec ce nom
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
Cela fonctionne très bien!
Ce que je ne peux pas obtenir de travail est si je veux changer cette variable dans la valeur du deuxième argument de l'utilisateur. Un exemple avec une erreur de syntaxe est:
#!/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
En d'autres termes: S'il est possible, comment puis-je obtenir un nom variables de l'utilisateur et à la fois en lecture (déjà résolu) et écrire à ladite variable?
Non, eval est la bonne façon de procéder. Vous devrez peut-être vous préoccuper des blancs en $ 2, bien que - et des guillemets simples et doubles et des backslashes. –
Merci de m'avoir affirmé que je suis sur la bonne voie. Je vais faire une validation de paramètre si je crée quelque chose de n'importe quelle valeur de réutilisation. En ce moment, je suis surtout occupé à essayer de comprendre Bash plus en profondeur. :-) –