2017-04-18 3 views
0

Je veux assigner une valeur à une variable (ce sera des variables différentes) mais je veux utiliser une fonction pour cela, ce serait quelque chose comme "Passer argument par valeur" comme le fait C#.Comment affecter une valeur de variable dans une fonction? unix korn shell

Voici l'exemple ce que je veux faire:

#/bin/ksh 
MyVariable="" 

ValidateVariableValue() 
{ 
    ${1}="Working with this!" 
} 

ValidateVariableValue "MyVariable" 

echo "value is: ${MyVariable}" 

Je veux que ma fonction reçoit le nom de la variable et attribuer une valeur à l'intérieur de ma fonction.

C'est possible? il y a un moyen de faire quelque chose de similaire?

Merci.

Répondre

2

Vous pourriez aimer ceci:

#/bin/ksh 
MyVariable="" 

function ValidateVariableValue() 
{ 
    eval $1="Working with this!" 
} 

ValidateVariableValue MyVariable 

echo "value is: ${MyVariable}" 
+0

Je copié le même code que vous, ne fonctionne pas ... 'erreur de syntaxe:' (» unexpected' –

+0

J'ai dû enlever le() sur la Fonctionne mais j'ai des problèmes Cela fonctionne si je fais ceci 'eval $ 1 =" travail "' mais pas si je fais cela 'eval $ 1 =" Travailler avec ceci "' c'est afficher que "avec" n'est pas trouvé –

+0

Je dois j'avoue que je n'ai pas testé avec ksh mais avec bash et zsh cela fonctionne donc si vous échappez à un caractère espace comme ça $ 1 = "Travailler \ avec \ this"? – jehutyy