Pular para o conteúdo

Sufixo "Se" no Shell [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Sufixo "Se" no Shell [RESOLVIDO]

Enviado em 14/07/2015 - 11:11h

Prezados

Estou criando uma rotina para instalar o samba 4 em um servidor Centos, Ate ai tudo bem, porem eu quero que meu script compare uma reposta, vou dar o meu exemplo abaixo


"
echo ' Você desabilitou o SElinux ? sim ou não' (essa e a pergunta )

(Resposta)

SIM = ele vai rodar meu Script

NÃO = ela vai voltar uma frase " Favor editar o arquivo SELinux"


Alguém pode me ajudar ?

Dês de já meu Obrigado a comunidade.

Responder tópico

3. Re: Sufixo "Se" no Shell [RESOLVIDO]

Enviado em 14/07/2015 - 13:53h

Acho que oque o cara acima disse acho que sera útil para voce.....penso da mesma forma que ele!

4. Re: Sufixo

Enviado em 14/07/2015 - 13:56h

Pode fazer como o p4ulodi4s falou, mas creio que nesse caso ficaria melhor um case ao invés do if:

#!/bin/bash

echo "voce desabilitou o selinux? (sim/nao)"
read resposta


case $resposta in
'sim')

codigo script aqui

;;

'nao')
echo "favor editar o arquivo"
;;

*)
echo "Resposta invalida, (sim ou nao)"
;;

esac

5. Re: Sufixo

Enviado em 14/07/2015 - 14:07h

Olá, existem algumas formas para fazer o que vc quer. Abaixo algumas sugestões:

Com while + case: Acredito ser a melhor forma, assim o usario fica em looping até digitar alguma resposta valida.

Não recomendo que o usuário deva digitar a palavra não, pois pode haver erros de digitação. Adicionei o case dentro do while e o read com -n1 ( após o user digitar uma letra, automaticamente o script continua, sem a necessidade de apertar enter.
x=0
while [ $x -eq 0 ]
do echo " Você desabilitou o SElinux ? S para sim N para Não "
read -n 1 resposta
case $resposta in

S|s) coloque aqui código pra executar o que vc quer
x=1 ;;

N|n)
clear
echo -e " Favor editar o arquivo SELinux. "
exit 1 ;;

*) clear
echo -e "$resposta não é uma resposta válida. Por favor aperte S para sim e N para não"
sleep 3 ;;
esac
done
Abs,


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

6. Re: Sufixo "Se" no Shell [RESOLVIDO]

Enviado em 14/07/2015 - 14:08h

kk. enquanto escrevia, cheagram 3 respostas em 5 minutos. rsrs


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

7. Re: Sufixo

Enviado em 14/07/2015 - 15:10h

Apesar de respeitar a contribuição do amigo...

Acho importante manter o código o mais simples possível. Veja, temos apenas 2 situações ( sim e não ), um IF é o suficiente.


read -p 'Você desabilitou o SElinux ? S ou N ' resposta ;

if [ $resposta != 'S' ] ; then
echo 'Favor editar o arquivo SELinux' ;
exit 1;
fi

//código script

O código é bem simples e funcional. Se a resposta é 'S', o código é executado. Se a resposta é qualquer outra coisa, a mensagem de erro é exibida. Para dar suporte ao 's' (minúsculo) é possível usar o seguinte código:


read -p 'Você desabilitou o SElinux ? S ou N ' resposta ;

resposta=$( echo $resposta | tr s S );

if [ $resposta != 'S' ] ; then
echo 'Favor editar o arquivo SELinux' ;
exit 1;
fi

//código script
O código fica fácil de ler e facilita uma alteração no futuro.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/

8. Re: Sufixo

Enviado em 14/07/2015 - 16:40h

Não sei se seria mais interessante fazer com que o script detecte automaticamente isso:

SETESTE=$(echo $(sestatus | grep SELinux\ status | cut -d':' -f2))
if [ "$SETESTE" == "enabled" ] ; then
echo "SELinux está ativado neste computador"
else
echo "SELinux não está ativado neste computador"
fi
Trecho testado em meu computador e funciona. Primeira regra: nunca confie no usuário, ele vai te fornecer informações erradas.

--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta

9. Re: Sufixo "Se" no Shell [RESOLVIDO]

Enviado em 14/07/2015 - 16:51h

lcavalheiro escreveu:

Não sei se seria mais interessante fazer com que o script detecte automaticamente isso:

SETESTE=$(echo $(sestatus | grep SELinux\ status | cut -d':' -f2))
if [ "$SETESTE" == "enabled" ] ; then
echo "SELinux está ativado neste computador"
else
echo "SELinux não está ativado neste computador"
fi

Trecho testado em meu computador e funciona. Primeira regra: nunca confie no usuário, ele vai te fornecer informações erradas.
+1 - Concordo 100% !
Ja tive taaaanta dor de cabeça por causa de user...

abs

---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

10. Obrigado

Enviado em 14/07/2015 - 17:21h


Obrigado a todos varias resposta ! uma melhor que a outra

top


!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder