Eu escrevi um arquivo de script bash de 2 linhas no Centos 6.8
#! /bin/sh
pid= ps -ef | grep -i 'adminserver' | grep -v grep | awk '{print $2}'
kill -9 $pid
quando executo o script recebo a seguinte saída:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
pid=
com um espaço depois de definir apid
variável como uma string vazia. O restante dessa linha simplesmente executaria o pipeline e produziria o resultado (provavelmente para o terminal, a menos que esteja sendo redirecionado). Já que$pid
está vazio,kill
depois reclama.Para capturar a saída de um comando, use
$(...)
, por exemploNo entanto, é melhor usar
pkill
para o que você está tentando fazer:Veja o
pkill
manual.Eu também evitaria usar o
KILL
sinal, se possível. Veja por exemplo " Quando não devo matar -9 um processo? ".