Transformer le résultat d'une variable positionnel en variable
Résolu
Karhm_75
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bon je vais essayer d'être claire:
Dans un script bash j'ai écrit une fonction qui nécessite une variable positionnelle, cette variable positionnel est elle même une variable et j'aimerais l'afficher dans un echo.
exemple
j'appel ma fonction
et j'obtiens
alors que je voudrais le contenu de la variable server_name
je ne trouve pas de solution, mais est-ce seulement possible ?
je vous remercie par avance
Bon je vais essayer d'être claire:
Dans un script bash j'ai écrit une fonction qui nécessite une variable positionnelle, cette variable positionnel est elle même une variable et j'aimerais l'afficher dans un echo.
exemple
fonction () {
echo "le nom est "$1""
}
j'appel ma fonction
fonction server_name
et j'obtiens
le nom est server_name
alors que je voudrais le contenu de la variable server_name
je ne trouve pas de solution, mais est-ce seulement possible ?
je vous remercie par avance
A voir également:
- Transformer le résultat d'une variable positionnel en variable
- Resultat foot - Télécharger - Vie quotidienne
- Transformer une image en icone - Guide
- Transformer majuscule en minuscule word - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
5 réponses
Salut,
Je ne sais pas si ça s'applique en bash mais en programmation, quand on veut utiliser une variable dans une fonction, on lui envoie un paramètre.
La fonction comme tu l'as déclarée ne prend pas de paramètre, elle va juste exécuter son code et se fermer.
Je ne sais pas si ça s'applique en bash mais en programmation, quand on veut utiliser une variable dans une fonction, on lui envoie un paramètre.
La fonction comme tu l'as déclarée ne prend pas de paramètre, elle va juste exécuter son code et se fermer.
Salut,
Je ne suis pas sûr d'avoir tout compris, mais bon…
Je ne suis pas sûr d'avoir tout compris, mais bon…
$ cat foo.sh
#! /bin/bash
var="${2}"
ma_fonction () {
echo "le nom est ${1}"
}
ma_fonction ${var}
$ ./foo.sh titi toto
le nom est toto
$ ./foo.sh titi tutu
le nom est tutu
Bon pour etre plus claire je vais mettre la vrai fonction:
j'appelle donc cette fonction dans mon script de la manière suivante:
bien évidemment l'echo de la fonction me retourne le message suivant:
mais je voudrais que cet echo m'affiche le contenu de la variable server_name (donc $server_name)
j'espère que c'est plus clair comme ça
verif_info () { #fonction de validation de l'information
echo -e "Vous avez tapé "$1", l'information est-elle correcte ? (selection avec les chiffres)"
PS3="Votre choix : "
select REPONSE in OUI NON
do
case $REPONSE in
OUI)
break ;;
NON)
echo "Taper à nouveau : "
read "$1"
break ;;
- ) echo "ERROR: Invalid selection" ;; esacdone}
j'appelle donc cette fonction dans mon script de la manière suivante:
verif_info server_name
bien évidemment l'echo de la fonction me retourne le message suivant:
Vous avez tapé server_name, l'information est-elle correcte ? (selection avec les chiffres)
mais je voudrais que cet echo m'affiche le contenu de la variable server_name (donc $server_name)
j'espère que c'est plus clair comme ça
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon j'ai trouver la solution finalement,
il suffit d'utiliser "eval" et d'utiliser la syntax suivante \$$1
donc voilà a quoi ressemble la fonction:
il suffit d'utiliser "eval" et d'utiliser la syntax suivante \$$1
donc voilà a quoi ressemble la fonction:
verif_info () { #fonction de validation de l'information
eval user_entry=\$$1
echo -e "Vous avez tapé "$COL""$user_entry""$NC", l'information est-elle correcte ? (selection avec les chiffres)"
PS3="Votre choix : "
select REPONSE in OUI NON
do
case $REPONSE in
OUI)
break ;;
NON)
echo "Taper à nouveau : "
read "$1"
break ;;
- ) echo "ERROR: Invalid selection" ;; esacdone}