Erro de execução no script comando "exit" não funciona. [RESOLVIDO]

1. Erro de execução no script comando "exit" não funciona. [RESOLVIDO]

Neto Lopes
n370

(usa Debian)

Enviado em 24/03/2015 - 12:29h

Olá pessoal do fórum, Estou criando um script simples mais o mesmo apresenta erro de execução. Sou iniciante em shell e em linux e peço uma ajuda. O script funciona, menos no momento em que se deve digitar a opção n para parar e sair do script. O comando EXIT no gedit fica VERMELHO e não preto.

Eis o código:


#Script do trabalho II
#Autor:Neto
#!/bin/bash

#Mesagem inicial:

echo "Antes de prosseguir com o processo de shutdown na máquina local certifique-se, da execucao da tarefa.
Deseja continuar? s/n?"

read AFIRMACAO

test "$AFIRMACAO" = "s" && echo "Tem certeza? s/n? r=reiniciar n=sair"


read RESPOSTA

#executa uma ação conforme resposta.

test "$RESPOSTA" = "s" && shutdown -h now
test "$RESPOSTA" = "r" && shutdown -r now
test "$RESPOSTA" = "n" && exit



  


2. MELHOR RESPOSTA

rafael c s
tyr

(usa Slackware)

Enviado em 25/03/2015 - 11:38h

Bom Dia

pelo que entendi a variável afirmação que não estava funcionando o comando não se for isso adicionei a linha, não sei se esta certo pq estou aprendendo shell também.

#!/bin/bash
#Script do trabalho II
#Autor:Neto

#Mesagem inicial:

echo "Antes de prosseguir com o processo de shutdown na máquina loca"

echo "certifique-se, da execucao da tarefa."

echo "deseja continuar? s/n?"


read AFIRMACAO

test "$AFIRMACAO" = "s" && echo "Tem certeza? s/n? r=reiniciar n=sair"
test "$AFIRMACAO" = "n" && exit

read RESPOSTA

#executa uma ação conforme resposta.

test "$RESPOSTA" = "s" && shutdown -h now
test "$RESPOSTA" = "r" && shutdown -r now
test "$RESPOSTA" = "n" && exit

3. Re: Erro de execução no script comando

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/03/2015 - 17:21h

A especificação do shell utilizado para interpretar o script deve vir na primeira linha do script.

# Este aqui é o jeito ERRADO de colocar comentários no início do script.
# Script X, que faz Y.
# Autor: Fulano
# Data: 2015/03/24
#!/bin/bash


#!/bin/bash
# Este é um exemplo do jeito CORRETO de colocar comentários no script
# (i.e. apenas APÓS a especificação do interpretador).
# Script X, que faz Y.
# Autor: Fulano
# Data: 2015/03/24


Mas o problema de que você reclamou possivelmente não é causado por isso. Parece-me que você quer encerrar a sessão do usuário com o comando exit. É isso?

Se for, então o problema é que o comando exit encerra o processo corrente, e normalmente os scripts são executados num processo separado daquele que em que a sessão interativa do usuário executa. Quando você digita um comando no seu terminal, se esse comando for composto ou invocar algum programa externo ao shell, o interpretador de comandos da sua sessão interativa cria um ou mais processos filhos, e executa cada comando externo ou membro de pipeline em cada processo filho. Quando esses processos filhos terminam, o controle volta ao processo original.

É possível importar comandos de um script para a sessão corrente. No bash, você faz isso com o comando “.”.

# O comando abaixo vai executar “meu_script” num processo separado.
# Se ele terminar, quer com sucesso, quer com erro, o controle volta para
# o processo que o chamou.
meu_script
# Depois de ”meu_script” terminar, volta a executar a partir deste ponto.
outro_comando


# O comando abaixo vai importar o conteúdo de “meu_script”, como se
# ele tivesse sido digitado aqui, sendo executado neste mesmo processo.
# Se der algum erro grave ou se for chamado o comando “exit”, este
# processo aqui vai se encerrar.
. meu_script
# Se “meu_script” tiver chamado exit, não chega neste ponto, nem executa
# o comando abaixo.
outro_comando



4. Re: Erro de execução no script comando "exit" não funciona. [RESOLVIDO]

Neto Lopes
n370

(usa Debian)

Enviado em 25/03/2015 - 08:37h


Olá Paulo deixa eu ver se eu entendi, tenho q criar outro script com o comando
exit 
e chamar ele pelo
. 
no outro script? é isso?

Outra dúvida se eu quiser que o script rode automaticamente no desligamento como faço?

Por exemplo: se digitarem
shutdown -h now 
e eu quiser q o script rode automaticamente logo após do comando shutdown como faço tem uma ideia?


5. Re: Erro de execução no script comando "exit" não funciona. [RESOLVIDO]

Neto Lopes
n370

(usa Debian)

Enviado em 25/03/2015 - 16:00h


Cara agora deu certo ele termina o script digitando "n" tanto na primeira opção como na segunda. Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts