Pour illustrer mon problème,
TEST="Hi my name is John" OUTP=`echo $TEST | awk '{print $3}'` echo $OUTP
5 Réponses :
Votre code fonctionne pour moi, tel quel.
[bloom@little-cat-a ~]$ TEST="Hi my name is John" [bloom@little-cat-a ~]$ OUTP=`echo $TEST | awk '{print $3}'` [bloom@little-cat-a ~]$ echo $OUTP name
#!/bin/bash TEST="Hi my name is John" set -- $TEST echo $3 #!/bin/bash TEST="Hi my name is John" var=$(echo $TEST|awk '{print $3}') echo $var
Cela semble fonctionner dans l'invite de commande, mais lorsqu'il est exécuté comme script shell, je reçois toujours HI: non trouvé. Aucun moyen de réparer cela? Merci!
Modifier: Nevermind, je mettais un espace supplémentaire avant le $ lors de la définition de la variable. Merci beaucoup pour l'aide!
Comment dire awk si la chaîne est le nom imprimer une variable avant de cela?
Comment faire cela avec des chiffres? var = $ (echo "(2 + 3)" | awk '{improvable $ 3}') => 5 code>
Dans le débordement de pile, il n'est pas souhaitable de vider le code. S'il vous plaît, il a besoin d'une certaine édition et d'une explication ultérieure.
Comme avec les autres, cela fonctionne pour moi tel quel, mais peut-être ajouter des guillemets double-citations ( " code>) autour de
$ test code> dans la ligne 2 aiderait. sinon, Des informations plus spécifiques sur le système sur lequel vous exécutez Bash pourrait vous aider. P>
Un moyen de reproduire un comportement similaire:
en une ligne:
echo $(echo "Hi my name is John" | awk '{print $3}')
Utilisez-vous des backticks pour vous assigner au test. Copier et coller du script qui donne l'erreur