Enviado em 11/08/2011 - 19:58h
Estou com um problema que não encontro solução sem fazer uma POG. (Programação orientada a gambiarras.)======== início aqui ================== #!/bin/bash # #: package: Acessos (nome de exemplo p/ Script ou executável final) (***) #: file: acessos.principal.sh (Do Script atual) # Retirado o cabeçalho completo para não poluir demais. # ----------------------------------------------------------------------------- # Iniciando o aplicativo finalmente. # ----------------------------------------------------------------------------- # Deve ser o diretório do INSTALL # Carrega somente uma vez caso não exista ainda. # Deve garantir que o diretório atual é o da instalação. # Somente o aplicativo principal faz este teste. [ "$DIR_INSTALL" ] || DIR_INSTALL="$PWD" # Variável que irá controlar se a instalação está OK em qualquer momento. # Controla o STATUS do aplicativo e da versão. # 1="OK" - 0="Algum problema de instalação ERRO FATAL 004" # Inicializada em 0 ( não OK ) Default INSTALL_OK=0 source config.principal.acessos.include.sh #Carrega todas configurações. source config.principal.acessos.include.sh #Carrega todas configurações. source config.principal.acessos.include.sh #Carrega todas configurações. echo "o que vale a variável INSTALL_OK ?? [ $INSTALL_OK ] " read exit ============= agora o arquivo config.principal.acessos.include.sh #!/bin/bash # #: package: Acessos (***) #: file: config.principal.acessos.include.sh #: since: 2011-08-11 17:27 (GMT -03:00) #: author: Geraldo T. Albuquerque - Twitter: @AprendiNoLinux #: version: 0.07 Alfa #: dir: Raiz do aplicativo principal. #------------------------------------------------------------------------------ #: objectives: 1º arquivo de configuração a ser carregado. #------------------------------------------------------------------------------ #: comments: Aplicativo não vai trabalhar enquanto não confirmar as alterações. #: Após alterar as configs, conseguirá testar o aplicativo. #: FIXME Lembrar de remover mensagens temporárias. #------------------------------------------------------------------------------ function _config.principal { # Contém o caminho completo ao home do usuário. # Poderá ser usado como um caminho raiz para seus diretórios internos. # Se mudar este valor por padrão, mudará todas localizações dos arquivos. # Todas as variáveis de diretórios herdam o que está definido em _HOME # Tome cuidado e confira a sua estrutura de diretórios. _HOME="$HOME" # Padrão na instalação é sempre 0 (não configurado) # 1="OK" 0="Não está configurado para trabalhar !!!"CONFIG_INSTALL=0 CONFIG_INSTALL=1 # Precisa verificar se está tudo configurado corretamente. # Quem deve carregar o ambiente é este Script. # Se você não configurar os diretórios corretamente, vai executar o padrão. # Padrão dos testes é: # Diretório de Scripts: $HOME/TESTES/Scripts if [ "$CONFIG_INSTALL" -eq 0 ] then INSTALL_OK=0 # Falhou nas configurações básicas. (Redundante) # Talvez seja interessante que após receber esta mensagem, abrir o editor # já carregando o arquivo necessário para configuração. # TODO Descobrir como pode ser feito com segurança. clear echo +----------------------------------------------------------------------+ echo " ERRO FATAL 001: !!!" echo +----------------------------------------------------------------------+ echo " Você não ajustou a chave principal de CONFIGURAÇÃO. !!!" echo +----------------------------------------------------------------------+ echo " Editar e ler as instruções do arquivo abaixo. " echo +----------------------------------------------------------------------+ echo " PASTA/Arq: $PWD/config.principal.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Deseja configurações fora do padrão? Edite outros configs." echo " Veja o aquivo: EstruturaDosDiretorios.txt em docs para mais detalhes." echo " Caso seu desejo seja fora do padrão, edite o arquivo abaixo:" echo +----------------------------------------------------------------------+ echo " PASTA/Arq: $PWD/config.local.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Aplicativo será abortado e só irá trabalhar após as alterações." echo +----------------------------------------------------------------------+ echo -n " Tecle ENTER para sair !!!" read x clear exit else INSTALL_OK=1 # Instalação está OK fi return } function _config.ambiente { # Configure abaixo o seu ambiente de operação se for fora do padrão. # Para fazer ajustes finos, acesse: ambiente.bash.include.sh CONFIG_AMBIENTE="${_HOME}/TESTES/Scripts" if test -d "$CONFIG_AMBIENTE" then INSTALL_OK=1 # Instalação está OK else clear echo +----------------------------------------------------------------------+ echo " ERRO FATAL 002: !!!" echo +----------------------------------------------------------------------+ echo " Não encontrou a pasta de CONFIGURAÇÃO para o AMBIENTE. !!!" echo +----------------------------------------------------------------------+ echo " Editar e ler as instruções. " echo +----------------------------------------------------------------------+ echo " PASTA/Arq: $PWD/config.principal.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Se desejar configurações fora do padrão? Edite outros configs." echo " Edite o aquivo:EstruturaDosDiretorios.txt em docs para mais detalhes." echo " Se não usar o padrão realmente, edite o arquivo abaixo:" echo +----------------------------------------------------------------------+ echo " PASTA/Arq: $PWD/config.local.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Aplicativo será abortado e só irá trabalhar após as alterações." echo +----------------------------------------------------------------------+ echo -n " Tecle ENTER para sair !!!" read x clear exit fi # O ambiente poderá mudar se você não usar bash. # Preparando variável para carregar o arquivo de ambiente bash. INCLUDE_CONFIG_AMBIENTE="${CONFIG_AMBIENTE}/ambiente.bash.include.sh" if test -e "$INCLUDE_CONFIG_AMBIENTE" then source $INCLUDE_CONFIG_AMBIENTE INSTALL_OK=1 # Instalação está OK else INSTALL_OK=0 # Falhou nas configurações básicas. (Redundante) clear echo +----------------------------------------------------------------------+ echo " ERRO FATAL 003: !!!" echo +----------------------------------------------------------------------+ echo " Você deve ter ajustado o arquivo de CONFIGURAÇÃO errado. !!!" echo +----------------------------------------------------------------------+ echo " Retorne ao arquivo principal de configuração. " echo +----------------------------------------------------------------------+ echo " PASTA/Arq: $PWD/config.principal.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Confira também as suas configurações locais em: " echo " PASTA/Arq: $PWD/config.local.acessos.include.sh " echo +----------------------------------------------------------------------+ echo " Para mais detalhes, veja o aquivo:EstruturaDosDiretorios.txt " echo " Você deve ter configurado para trabalhar fora do padrão. " echo +----------------------------------------------------------------------+ echo " Aplicativo será abortado e só irá trabalhar após ajustes." echo +----------------------------------------------------------------------+ echo -n " Tecle ENTER para sair !!!" read x clear exit fi return } _config.principal #Executa as configurações principais. _config.ambiente #Executa as configurações do ambiente shell bash. echo $INSTALL_OK # Retorna o STATUS das configurações. echo " Quantas vezes vai mostrar esta mensagem ? E agora José ? " #------------------------------------------------------------------------------ #: Notas: Configuração principal é pequena, porém importante. #------------------------------------------------------------------------------ #: Erros fatais numerados ajudam na solução de problemas. #: Se bem usado, obriga o desenvolvimento prever problemas. #------------------------------------------------------------------------------ #: INSTALL_OK previne chamadas diretas nas funções básicas em outros locais. #: Se não resolver de outra forma, vou apelar para esta POG mesmo. #------------------------------------------------------------------------------
Enviado em 11/08/2011 - 21:42h
usando o source, o conteúdo do arquivo passa a fazer parte do script que o chamou, enão o que vai ser identificado os processos é o script que o chamou :-), acho que você pode simplesmente criar uma variável nesse arquivo e quando quiser saber se já foi carregado essa lib, basta checar se a variável em valor ou não.Enviado em 11/08/2011 - 20:08h
Se tiver um comando para eu saber os Scripts que já estão carregados na memória também serve :)Enviado em 11/08/2011 - 21:24h
Buenas @rai3mb :)Enviado em 11/08/2011 - 21:36h
Descobri que se eu tentar pegar o array no segundo Script que está sendo carregado, a variável bash citada tem valor.Enviado em 11/08/2011 - 21:49h
Ok @rai3mb , esta foi a solução que encontrei + ou - na POG.Enviado em 11/04/2012 - 15:44h
Hoje em dia sigo a recomendação feita pelo profs @rai3mb e executo um teste em variável para saber se determinado arquivo está carregado em memória.Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela