J'ai la ligne suivante dans un script Nagios bash. Il est utilisé pour obtenir les taux d'erreur haut et bas pour les cartes réseau spécifiées:AWK: Ces instructions sont-elles requises?
if=`awk -v interface="$INTERFACE" '$1 ~ "^" interface ":" { split($0, a, /: */); $0 = a[2]; print $3 " " $11 }' /proc/net/dev`
Je ne l'ai jamais travaillé avec awk avant aujourd'hui, donc je trouve mon chemin un peu. Comme je le vois, nous passons la valeur $ INTERFACE dans le script awk comme interface, puis filtre pour les lignes commençant interface:
(par exemple eth0 :). Ensuite, nous divisons la ligne en utilisant l'espace-deux-points comme séparateur. Ensuite, pour une raison quelconque, nous affectons la troisième entrée du tableau à $ 0 avant d'extraire réellement les valeurs que nous voulons.
Il me semble que les déclarations split($0, a, /: */)
et $0 = a[2]
ne sont pas nécessaires mais je peux me tromper! Est-ce que l'assignation d'un [2] à 0 $ change quelque chose quand on parle alors de 3 $ et de 11 $? J'ai essayé le script sans les deux premières déclarations et la sortie est la même, mais peut-être il y a une affaire coin, je l'ai raté ...
Merci à l'avance
Rich