2012-11-27 3 views
1

parce que je n'ai pas trouvé une solution sur google ou la fonction de recherche je vais demander ici.Utiliser awk dans shellscript avec des paramètres?

Voici mon code:

Send="last -n 1 $1 | awk '{ print $1 " " $2 }'" 

Mon problème est que mon script shell utilise des paramètres.

Quand je vous appelle mon script:

myScript hello world 

Alors mon awk-commande ressemble

awk '{ print hello " " world }' 

Mais comment pourrais-je éviter cela? Y a-t-il un moyen?

Parce que cela fait partie d'un projet, je ne pouvais pas poster plus de code. ;/

+0

Que faites-vous avec votre variable '$ Send' –

+0

Ceci est pour l'identification d'un utilisateur, ne pas envoyer des messages en double,?.) Peut-être le nom est un peu confuse de – demonking

Répondre

1
  1. premier changement de la extérieure « s" pour $() si: send=$(last -n 1 $1 | awk '{print $1 " " $2}')

  2. utiliser la variable FS (séparateur de champ), qui par défaut à l'espace dans awk au lieu de "" pour un espace si: send=$(last -n 1 $1 | awk '{print $1 FS $2}')

+1

Merci pour votre aide Cela fonctionne savoir :) – demonking

+4

Remplacer 'FS' par', 'comme c'est le but de OFS. –

+1

les deux fonctionnent. un argument peut être fait que, est moins de type par rapport à 'FS', mais ma préférence est pour' FS'. Comme cela m'aide logiquement à faire la distinction, alors qu'une virgule peut être facilement négligée. Surtout lors de l'examen du code plus ancien. Préférence vraiment. – matchew

Questions connexes