Problema com código Case dentro de case [RESOLVIDO]

1. Problema com código Case dentro de case [RESOLVIDO]

Filipe Vieira
fsvieira

(usa Red Hat)

Enviado em 01/09/2008 - 12:06h

Bom dia,

Bom este eh meu primeiro programa em shell script então estou tendo alguns problemas (devo estar cabaçando)

Fiz um código para fazer algumas configurações no Red Hat Enterprise 4

Mas estou tendo problema em um método que eu criei chamado arquitetura, onde tem um case dentro dele, só que o método já eh chamado por um outro case, não sei se eu posso usar dessa forma

Segue o código abaixo, provávelmente vcs vaum encontrar muitos erros, ou maneiras mais inteligentes de fazer oq eu estou tentando no código.

Obs: O código estava identado, mas quando coloquei no site perdeu a identação, e tem uma parte do código que está comentado mas eh pq não tive tempo de teminar pq parei nesse erro do case

Desde de já agradeço a atenção de todos

Abço

#!/bin/bash
clear
#
#Objetivo: Configuracao automatizada dos servidores linux 32 / 64 bits
#
#
echo "====================================================================="
echo "### Dia corrente ###";date ;
Principal(){
echo "====================================================================="
echo "======= Configuracao automatizada dos servidores Linux 32/64 ======="
echo "====================================================================="
echo "Opcoes:"
echo
echo "1. Habilitar servico telnet/server"
echo "2. Habilitar servico ftp/server"
echo "3. Especificar arquitetura do processador (32/64) / Instalar Pacotes"
echo "4. Especificar nome do servidor"
echo "5. Selecionar servicos para inicializacao no boot do sistema "
echo "6. Configurar IP's de rede"
echo "7. Instalar / Configurar Heartbeat"
echo "8. Sair do programa"
echo
echo -n "Qual a opcao desejada ? "
read opcao
case $opcao in
1) Telnet;;
2) FTP;;
3) Arquitetura;;
4) Nome;;
5) ntsysv;;
6) Network;;
7) Heartbeat;;
8) clear;exit;;
*) "Opcao desconhecida !!"; echo; Principal;;
esac
}

Telnet() {
clear
echo "Habilitando servico TELENT/SERVER"
sed "s/yes/no/g" /etc/xinetd.d/telnet > /etc/xinetd.d/telnet.alt
mv /etc/xinetd.d/telnet.alt /etc/xinetd.d/telnet
echo pts/0 >> /etc/securetty
echo pts/1 >> /etc/securetty
echo pts/2 >> /etc/securetty
echo pts/3 >> /etc/securetty
echo pts/4 >> /etc/securetty

/etc/init.d/xinetd restart
Principal
}
FTP() {
clear
echo "Habilitando servico FTP/SERVER"
sed "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" /etc/vsftpd/vsftpd.conf > /etc/vsftpd/vsftpd.conf.alt
mv /etc/vsftpd/vsftpd.conf.alt /etc/vsftpd/vsftpd.conf
sed "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" /etc/vsftpd/vsftpd.conf > /etc/vsftpd/vsftpd.conf.alt
mv /etc/vsftpd/vsftpd.conf.alt /etc/vsftpd/vsftpd.conf
sed "s/#ftpd_banner/ftpd_banner/g" /etc/vsftpd/vsftpd.conf > /etc/vsftpd/vsftpd.conf.alt
mv /etc/vsftpd/vsftpd.conf.alt /etc/vsftpd/vsftpd.conf

sed "s/root//g" /etc/vsftpd.ftpusers > /etc/vsftpd.ftpusers.alt
mv -f /etc/vsftpd.ftpusers.alt /etc/vsftpd.ftpusers
sed "s/root//g" /etc/vsftpd.user_list > /etc/vsftpd.user_list.alt
mv -f /etc/vsftpd.user_list.alt /etc/vsftpd.user_list
rm -f /etc/vsftpd.user_list.alt
rm -f /etc/vsftpd.ftpusers.alt

/etc/init.d/vsftpd restart
Principal
}
Arquitetura() {
echo
echo "1. Processador 32 Bits"
echo "2. Processador 64 Bits"
echo "3. Voltar ao menu principal"
echo
echo -n "Qual a opcao desejada ? "
read opcao
case $opcao in
1) 32;;
2) 64;;
3) Principal;;
*) "Opcao desconhecida !!";Arquitetura;;
esac

32() {
echo "Dentro do 32"
/tmp/RHEL/RH4/32_bits/pacotes32.sh
Arquitetura
}
64() {
/tmp/RHEL/RH4/64_bits/pacotes64.sh
Arquitetura
}
Arquitetura
}
#Nome() {
# clear
# echo "1. Espcificar o nome do Servidor"
# echo "2. Voltar ao menu principal"
# case $nome in
# 1) Troca;;
# 2) "Menu Principal"; echo; Principal;;
# *) "Opcao desconhecida !!"; echo; Nome;;
# esac
#
# Troca() {
# echo "Digite o nome do servidor"
# read nome
# var = uname -n
# sed "s/$var/$nome/g" /etc/sysconfig/network > /etc/sysconfig/network.alt
# mv /etc/sysconfig/network.alt /etc/sysconfig/network
# sed "s/$var/$nome/g" /etc/hosts > /etc/hosts.alt
# mv /etc/hosts.alt /etc/hosts
# }
# Principal
#}
#
#Network() {
# clear
# echo "1. Alterar IP NIC"
# echo "2. Alterar Gateway"
# echo "3. Ativar NIC"
# echo "4. Desativar NIC"
# echo "5. Re-iniciar servico de rede"
# echo "6. Voltar ao menu principal"
# case $op in
# 1) Add;;
# 2) Gtw;
# 3) Ativar;;
# 4) Desativar;;
# 5) Restart;;
# 6) "Menu Principal"; echo; Principal;;
# *) "Opcao desconhecida !!"; echo; Network;;
# esac
#
# Add() {
#
# }
# Gtw() {

# }
# Ativar() {
# echo "Entre com o numero da NIC Ex: 0 | 1 | 2"
# read nic
# ifconfig eth$nic up
# }
# Desativar() {
# echo "Entre com o numero da NIC Ex: 0 | 1 | 2"
# read nic
# ifconfig eth$nic down
# }
# Restart() {
# echo "Re-iniciar servico de rede"
# service network restart
# }
#}
#
#Heartbeat() {
#
#
#}
Principal


  


2. Resolvi com if :-p

Filipe Vieira
fsvieira

(usa Red Hat)

Enviado em 08/09/2008 - 14:57h

Resolvi montado a estrutura com if

:-p


3. Dica

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 10/09/2008 - 02:13h

Quando ocorrerem problemas nos teus shell scripts e você não sabe o por quê, execute-os em modo debug, assim:

$ bash -xv script

Desse modo, fica "facim facim" descobrir erros.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts