2012-11-19 4 views
1

J'essaie actuellement de faire un nom de variable qui consisterait d'une autre variablecomment puis-je utiliser une variable comme nom de variable dans ce script bash

while [ "$countf" -le 9 ]; do 
        vname=$(echo fcp"$countf") 
        $vname=$(awk -F, -vs="\$fc$countf" '{for (i=1;i<=NF;i++)if($i~"^"s"$"){print i;exit;}}{print "not found"}' <<< $first_line) 
        countf=$((countf + 1)) 
      done 

bien quand je vais exécuter le script qui comprend le code, quelque chose le long des lignes de ce qui suit est sortie:

fcp1=not: command not found 

FCP1 étant le contenu de la variable vnom. J'ai essayé plusieurs solutions différentes, mais je n'ai pas encore trouvé de solution pour le moment, si quelqu'un pouvait signaler ce que je fais de mal, mais je l'apprécierais vraiment, merci.

+1

Pourquoi avez-vous besoin de cela? Pourquoi ne l'appelez-vous pas 'p1p2' ou directement' cat1'? – alestanis

+0

'eval" cat $ p2 = quelque chose "' –

+0

Répétition de la question http://stackoverflow.com/questions/13462936/why-can-i-not-save-the-output-of-this-awk-statement-to -une variable du même utilisateur, il y a juste une heure? – anishsane

Répondre

2

essayez ceci:

eval cat$p2="something" 

sans les guillemets autour du nom de la variable.

Questions connexes