clcampos, mas numa coisa tem de concordar, apesar de shellscript ser excelente, de ser uma solução rápida para problemas, as vezes, complexos, DEBUGAR EM SHELL É UMA DROGA QUANDO A COISA CRESCE E ULTRAPASSA A FRONTEIRA DAS 1500 LINHAS.
Ainda mais quando o script NÃO é seu.
Tenho de terminar de desenvolver uma aplicação que dará as opções:
1 - configurar rede (ip, gateway, mascara e dns)
2 - configurar host e mais cinco arquivos textos.
3 - 17 tipos de cópias diferenciadas.
Exemplos:
(diretório X para diretório X de outro computador)
(diretório Y para diretório Y de outro computador)
(diretório X para diretório X de varios computadores)
O usuário tem de informar o tipo de cópia a ser executada.
4 - sincronizar 40 pastas em nove servidores com o rsync.
E Mais outras 12 opções um pouco mais complexas.
Tudo isso será feito de forma que o usuário entre com o mínimo de dados possiveis, então, tenho apenas dois menus, uma onde informa a função desejada e, dependendo da opção selecionada, ele solicita que seja informado o numero do micro de onde funções serão executadas, como a cópia de arquivos.
Após informado, o script faz o resto.
Esse script é para economizar tempo no treinamento de técnicos e evitar os erros que eles cometem quase diariamente.
Ex: copiar diretório X para diretório Y de outro computador simplesmente fode tudo e leva-se horas para corrigir se demoramos mais de 6 horas para descobrir o problema.
Para facilitar, usei o dialog e essa droga ficou com pouco mais de 1200 linhas.
Até ai, moleza, ficou ótimo, com as caixas, nenhum valor é digitado pelo técnico nesse script.
E nenhum momento é selecionado mais que três opções, independentemente do que o técnico queira fazer.
Agora me deparei com o fato que em 300 computadores, devido a versão do kernel, compiladores e outras incompatibilidades, a instalação do dialog nesses micros é impossivel, tenho de re-fazer o script sem o dialog, com o valor informado no terminal, de modo que o técnico insira o valor e, ao fazer isso, tenho de colocar um monte de condições no script, do tipo:
caso a variavel tenha mais de dois caracteres faça isso.
caso a variavel tenha letras faça isso.
caso a variavel tenha numeros faça isso.
e dalhe case
A droga do script subiu para 2800 linhas, então, pensei em fazelo de outra forma, declarando mais váriáveis, centralizando e criando mais laços, na verdade, criei todos os laços possiveis e reduzi o script para 1300 linhas.
e dalhe for, until...
Ainda estou testando esse novo script.
Não sou do tipo que vai fazendo e testando, faço ele inteiro e depois testo quando esta pronto, para não perder o pique ou a lógica, e, ai é que se torna um saco, é erro de tudo que é lado, loops infinitos aparecem (as vezes acho que sou bom nisso), falta de vírgulas, um parênteses faltando em outro lugar, um "esac, fi ou done" que esqueci.
DEBUGAR é uma derma, alguns erros ele mostra em uma determinada linha, mas o problema é uma virgula que esta em uma outra linha, o que as vezes, me faz demorar para localizar.