
Envoyé par
Nayas
Bonjour,
Je suis débutant avec le Shell scripting. J'ai un problème avec la commande ci dessous:
1 2 3 4 5 6
|
problem=0
awk '{ if ($2 > 5) problem=1}' tmp_cpu_idle.dat
echo "Problem: ${problem}" |
La variable problem se réinitialise en sortant du awk. Y a-t-il moyen de faire en sorte de changer la valeur de "problem" et de l'utiliser par la suite?
MERCI
Il est impossible à une variable initialisée dans un processus fils de remonter sa valeur dans l'appelant. La hiérarchie entre processus est très cloisonnée. Toutes la mémoire créée dans un fils est détruite à la mort du fils.
Cependant il est possible de contourner un peu ça
Il te suffit de faire un programme (awk ou autre) qui affiche simplement la valeur que tu veux renvoyer, style
awk '{..... print valeur}'
Et tu récupères cet affichage via backquotes
problem=`awk '{..... print valeur}'`
Mais ça ne marche que si ton programme awk ne fait qu'un seul et unique affichage.
Partager