Bash variable de commande avec des tuyaux, des citations etc

J'ai une commande que j'utilise pour obtenir le nom d'hôte.localdomain

dig axfr @dc1.localdomain.com localdomain.com | grep -i Lawler | awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }'

Ce bien retourne un résultat comme:

michael.lawler.localdomain.com

J'aimerais plus d'utiliser ce résultat comme une variable dans un script bash.

Il semble que je vais avoir de la difficulté à obtenir passé la première pipe.

Si Je VAR="dig axfr @dc1.localdomain.com localdomain.com | grep -i Lawler | awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }'"

...je remonte l'ensemble de la zone de transfert. J'ai aussi essayé beaucoup de changements mineurs ajoutant $ avant la dig de commande, sans les guillemets, rien ne semble fonctionner. N'importe quelle direction est très apprécié.

Si votre objectif est de placer la commande à exécuter plus d'une fois, voir mywiki.wooledge.org/BashFAQ/050 ("je suis en train de mettre une commande dans une variable, mais les cas complexes sont toujours voués à l'échec!"). Si votre objectif est uniquement de stocker de sortie, var=$(command)
Pour info: vous pouvez probablement demander dig pour vous donner moins d'informations, pour rendre la sortie plus facile à analyser. Voir, par exemple, la +short option.
awk '{ getline ; $1=substr($1,1,length($1)-1); print $1 ; exit }' fait ce dont j'ai besoin, +short ne fonctionne pas pour ma situation, je ne sais pas pourquoi..peut-être à cause de OSX. Merci pour la suggestion.
Les deux réponses fournies fonctionner comme prévu. Toute réflexion sur ce qui est plus sensible à l'avenir de la complexité? J'aimerais accepter celle qui fournit le plus indulgent de la flexibilité. Merci
double possible de Comment exécuter une commande bash stockées sous forme de chaîne avec des citations et des astérisque

OriginalL'auteur TryTryAgain | 2013-03-06