À l'aide de bash pour la variable de boucle dans awk impression

J'essaie de comprendre une situation spécifique à l'intérieur de bash, awk:

Je veux utiliser le awk opérateur binaire pour de concaténation de chaîne entre les deux variables (un espace) comme la variable d'itération,$i, dans un bash pour la boucle:

$ for i in ' '; do 
  echo "foo bar" | awk '{print $1$i$2}'
done
foofoo barbar

Sortie attendue est: foobar

Question 1

  • Ce qui se passe? RÉPONSE (marqué comme correcte)

Question 2

  • Comment puis-je obtenir awk pour utiliser la concaténation de chaîne comme ci-dessus bash pour la boucle? RÉPONSE

De référence

$ $SHELL --version | head -n1
GNU bash, version 4.3.42(4)-release (x86_64-unknown-cygwin)

$ awk --version | head -n1
GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.3, GNU MP 6.1.0)

Test complet

$ for i in '+' '-' '*' '/' '%' ' ' ''; do echo "2.0 4.0" | awk '{print $1$i$2}'; done
2.02.0 4.04.0
2.02.0 4.04.0
2.02.0 4.04.0
2.02.0 4.04.0
2.02.0 4.04.0
2.02.0 4.04.0
2.02.0 4.04.0
InformationsquelleAutor adam | 2016-03-05