Estoy haciendo un script para matar un proceso dependiendo de la memoria libre el código es el siguiente:
Código:
#!/bin/bash
var1= free -m |awk 'NR == 2'| awk '{print $3}'
var2= ps aux | grep '/opt/skype/skype' | grep -v grep | awk '{print $2}'
while true;
do
if [ $var1 > 5000 ]; then
echo "La memoria se ha excedido cerrando porcesos"
kill -9 $var2
break
else
echo "La memoria aun es estable $var1"
fi
done
pero... ¿por que no mejor en lugar de declarar la variable para luego matar kill -9 $var2, mejor ejecutar el comando ps aux | grep '/opt/skype/skype' | grep -v grep | awk '{print $2}' | xargs kill que mataría el proceso directamente?
si ese fuera el caso mejor usaría pkill skype que mataría dicho proceso, pero lo que yo quiero saber o supongo que es el problema es algo así como el manejo de números enteros, por que al hacer una condición ejemplo: $var1 > 5000 no hay resultado, supongo que estoy comparando diferentes tipos de valores, ¿que puedo hacer? ¿como puedo pasar entonces estos valores a valores enteros?
Hacer notar que me estoy iniciando en Bash
De antemano agradezco su ayuda, saludos.