Script correndo para sempre [fechado]

1

você poderia me fornecer informações sobre por que o seguinte script é executado para sempre, mesmo depois que a última instrução de eco foi executada com êxito? Obrigado pela sua ajuda.

cd /app/pme/${property:DeployEnv}/ruleengine
./stop.sh
unzip -o ruleengine.app.zip
unzip -o ruleengine.${property:DeployEnv}.zip
dos2unix *.sh
echo begin chmod
chmod ugo+rx *.sh
echo end chmod
echo begin run.sh
./run.sh
echo end run.sh
cd /app/pme/${property:DeployEnv}/ruleengine
pwd
echo start rm commands
rm ruleengine.app.zip
rm ruleengine.${property:DeployEnv}.zip
echo end rm commands
exit
    
por user3100063 19.12.2013 / 15:19

3 respostas

1

Para depurar um script Bash, que estou assumindo acima, na verdade, é Bash, simplesmente execute-o assim:

$ bash -x <script.sh>

Você também pode ativar a desativação da mensagem de depuração adicionando set -x e set +x em torno de blocos de código nos quais deseja ver informações mais detalhadas.

Exemplo

#!/bin/bash

echo "msg1"
echo "msg2"
set -x
echo "msg3"
echo "msg4"
set +x
echo "msg5"

Então, quando eu executo:

$ ./my.sh 
msg1
msg2
+ echo msg3
msg3
+ echo msg4
msg4
+ set +x
msg5

Podemos ver quais comandos estão sendo executados na saída acima. O comando é exibido com um sinal de mais, prefixando o comando, seguido por sua saída.

+ echo msg3
msg3

Apenas o bloco de comandos agrupados dentro dos comandos set .. é exibido assim.

    
por 19.12.2013 / 15:51
1

Eu sugeri em um comentário acima, e parece que isso levou à identificação do problema, colocando-o aqui porque isso pode ser útil para a depuração.

Do this. set -v on then run this script and show us the results. then do set -o verbose

O autor identificou uma exceção sendo lançada por um programa em Java.

    
por 19.12.2013 / 16:03
-1

Todas as linhas de eco devem ter seus argumentos entre aspas, por exemplo:

echo 'end rm commands'
    
por 19.12.2013 / 15:32