shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script pulando comandos


From: Bambam Souza
Subject: Re: [shell-script] Script pulando comandos
Date: Thu, 14 Dec 2017 17:21:33 -0200

Acho que descobri o que é, pessoal.
O problema não está no case. 

Eu tirei uma mensagem de ajuda que eu usava no script... exemplo:

MENSAGEM_USO="
Uso: ${0##*/} "$0") [-h | -V]

        -h, --help      Mostra esta tela de ajuda e sai
        -V, --version      Mostra a versão do programa e sai

Exemplos:
        ${0##*/} "$0") -h
        ${0##*/} "$0") MDIV-1xx

"


case "$1" in
-h | --help)
        echo "$MENSAGEM_USO"
        exit 0

;;

-V | --version)
Extrai a versão diretamente do cabeçalho do programa        
        grep '^#Versão' "$0" | tail -1 | tr -d "#"
        exit 0

;;
esac


Depois que eu tirei isso, funcionou!!!
Tô checando essa parte pra ver o que aconteceu

Em 14 de dezembro de 2017 16:42, Bambam Souza <address@hidden> escreveu:
Fala mestre Julio...

Fiz o que você aconselhou , mas deu no mesmo. Debuguei também e caiu exatamente na mesma linha.

Sabe o que é engraçado? Eu tirei o case e deixei apenas as linhas com os comandos/variaveis. Executei o script e foi com sucesso!!! 

Será que tem algum problema nesse case? hahahaha
Coisas estranhas acontecendo hahaha

Em 14 de dezembro de 2017 16:29, 'Julio C. Neves' address@hidden [shell-script] <address@hidden.br> escreveu:
 

Tá parecendo bruxaria mesmo... Tenta fazer assim, sem as contra barras:

1)
    mkdir -p $DIR_UNDEPLOY$1 && 
    divulga stop && 
    mv --backup $DIR_DIVULGA*.jar $DIR_UNDEPLOY$1 &&
    echo -e "\033[44;1mBackup realizado!\033[m" &&
    cp $DIR_DEPLOY$1/*.jar "$DIR_DIVULGA" &&
    divulga start &&
    echo -e "\033[42;1mAbrindo log da aplicação...\033[m"
    sleep 2
    eval $SERVERLOG
    ;;

Tirei as contra barras do final e as chaves das variáveis (todos desnecessários) e incluí um eval para executar o cmd em SERVERLOG.

Se isso não resolver, creio que pelo menos ficará mais fácil de entender o erro.

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» O treinamento está muito caro?

Ministramos um excelente treinamento de Shell,
no formato EAD. Veja os detalhes aqui.

Damos treinamento em sua empresa com certificado
e nota fiscal por um preço, no mínimo, 50% abaixo
de qualquer curso.

​​
Nosso time de instrutores in company é formado somente por
autores
​ ​
de Best Sellers
​ ​
​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico









Em 14 de dezembro de 2017 16:11, Bambam Souza address@hidden [shell-script] <address@hidden.br> escreveu:
 

Fala pessoal, boa tarde!!

Estou com um problema bem chatinho que não sei mais como tentar resolver isso. 

Primeiro eu vou deixar abaixo o script:

#!/bin/bash
#### Variáveis ######

START_DIVULGA=`/etc/init.d/divulga start`
STOP_DIVULGA=`/etc/init.d/divulga stop`
DIR_DIVULGA="/server/divulga/"
DIR_UNDEPLOY="/server/undeploy/"
DIR_DEPLOY="/home/mnt/deploy/"
SERVERLOG="less -n /var/log/divulga/divulga.log"


(...) Pulando pra parte que interessa:

read -p "Opção: " opcao

case "$opcao" in
1)
        mkdir -p ${DIR_UNDEPLOY}$1 && divulga stop && mv --backup ${DIR_DIVULGA}*.jar ${DIR_UNDEPLOY}$1 && \
        echo -e "\033[44;1mBackup realizado!\033[m" && \
        cp ${DIR_DEPLOY}$1/*.jar "$DIR_DIVULGA" && divulga start && \
        echo -e "\033[42;1mAbrindo log da aplicação...\033[m" ; sleep 2 ; $SERVERLOG
;;

2)
        echo "teste"
;;
esac

GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
Ubuntu 16.04

Aqui embaixo eu deixo o dubug para vocês verem o que de fato está acontecendo:

case "$opcao" in
1)
        mkdir -p ${DIR_UNDEPLOY}$1 && divulga stop && mv --backup ${DIR_DIVULGA}*.jar ${DIR_UNDEPLOY}$1 && \
        echo -e "\033[44;1mBackup realizado!\033[m" && \
        cp ${DIR_DEPLOY}$1/*.jar "$DIR_DIVULGA" && divulga start && \
        echo -e "\033[42;1mAbrindo log da aplicação...\033[m" ; sleep 2 ; $SERVERLOG
;;

2)
        echo "teste"
;;
esac
+ case "$opcao" in
+ mkdir -p /server/undeploy/TESTE
+ divulga stop
+ mv --backup /server/divulga/divulga.jar /server/undeploy/TESTE
+ echo -e '\033[44;1mBackup realizado!\033[m'
Backup realizado!
+ cp /home/mnt/deploy/TESTE/divulga.jar /server/divulga/
Killed

Ou seja, parece que logo depois de realizar a cópia, o script está executando um kill que nem sei de onde surgiu e não passa para o próximo passo, que seria iniciar a aplicação. 

Tirei o comando/variavel que executa a inicialização da aplicação e deixei só o "echo"... E imagina só o que aconteceu? O comando echo nem sequer foi executado. 

Alguém faz ideia do que pode ser essa bruxaria? Tô deixando passar alguma coisa?

Flws!!!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]