Tengo mañana un examen de bash, y me ha surgido una duda con las variables globales, que no sabia, al hacer un while se te ejecuta en otra terminal por lo que no se acceder a las variables desde fuera del bucle, y claro la solucion que se me ha ocurrido es bastante chapucera, aqui bajo la teneis
#!/bin/bash
memtemp=`mktemp`
portemp=`mktemp`
memoria=0
porcentaje=0
echo $porcentaje > $portemp
echo $memoria > $memtemp
ps aux | egrep "^$1\ .*" | while read line; do
m=`echo $line | awk '{ print $5 }'`
p=`echo $line | awk '{ print $4 }'`
porcentaje=$( echo "scale=2; $porcentaje + $p" | bc )
memoria=$( echo "scale=2; $memoria + $m" | bc )
echo $porcentaje > $portemp
echo $memoria > $memtemp
done
echo "$1: `cat $memtemp` kb ( `cat $portemp` % )"
rm $memtemp $portemp
¿Como puedo hacer variables globales?