He creado un bash script para matar el proceso activo buscando por nombre
pkill.sh
#~/bin/bash
pro=`ps aux | grep $1 | grep -v sh | grep -v grep | awk '{print $2}'`
if [ !-z "$pro" ]
then
echo $1 process is not running
else
kill -9 $pro
echo $1 process killed forecfully, process id was $pro.
fi
y ejecute este shell script en el terminal ( v 2.8) como sigue
sh pkill.sh mongod
el trabajo está hecho, pero también da el error
pkill.sh: línea 3: [: !-z: operador unario esperado kill: uso: kill [-s sigspec | -n signum | -sigspec] pid | jobpec ... o kill -l [sigspec] el proceso mongod ha sido matado con anterioridad, el id del proceso era .
¿por qué este script da un error?
Lo intenté con
if[[ !z "$pro ]]
pero sin ayuda.
Por favor, dígame cómo escribir exactamente un bash válido script
1 votos
Considere el uso de shellcheck.net para ayudar a encontrar problemas con su shell script.