ksh se a sintaxe da instrução

2

Eu tenho essa declaração if e toda vez que eu mudo alguma coisa outra coisa parece estar errada. Você pode ver o problema?

if [[ $(ps -ef | grep "Process" | grep -v "grep" | awk '{print $2}') = '' ]]; then
        echo "bien"
fi

Eu recebo launcher.sh[74]: 11927676^J15335522: syntax error

    
por lucia 01.10.2015 / 12:55

2 respostas

2

Se "Process" for uma string fixa, tente

ps -ef | awk '/[p]rocess/ {print $2}'

para obter o ID do processo.

Se você estiver verificando um processo ausente (... = '')

if ps -ef | grep -q [P]rocess
then 
   echo Process present
else
   echo Process absent
fi

Você também pode ver pgrep(1) (por exemplo, man pgrep )

    
por 01.10.2015 / 13:19
0

A comparação no KSH precisa ser feita com dois sinais de igual. ==

if [[ $(ps -ef | grep "Process" | grep -v "grep" | awk '{print $2}') == '' ]]; then
        echo "bien"
fi
    
por 03.10.2015 / 12:08

Tags