shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Condições com IF


From: Valtoir
Subject: Re: [shell-script] Condições com IF
Date: Wed, 15 Jan 2014 15:05:34 -0200

Citando o próprio Júlio, nesta thread:

OBS: São raros os casos em que as variáveis do shell precisam ficar entre chaves. A linha que mencionamos poderia (e deveria) ser:

if [ $method = update ]

Facilita a legibilidade, pesa menos para o interpretador e vc tecla menos.


Valtoir




Em 15 de janeiro de 2014 14:56, Karin Klayton <address@hidden> escreveu:
 

Isso mesmo, lendo alguns livros e inclusive do Neves e do Aurélio, no qual falam sobre segurança e padronizar a escrita com documentação do código e tipos, comecei a criar padrões de escritas e sempre usar {}, --help, variáveis maiúsculas porém começando com "_".e assim por diante. O bom é que acaba criando um padrão e quem lê já sabe quem fez, mesmo se não tiver uma identificação de quem fez.

att,
Karin Klayton Schiochet


Em 15 de janeiro de 2014 12:50, Eliel <address@hidden> escreveu:

 

Nao e obrigatorio, mas eh bom em relacao a seguranca (e ate facilitar caso voce precise fazer parser dentro da variavel)
 
Entao faz parte de boas praticas, assim como o julio falou tambem, e boa pratica nao usar variavel toda em maiusculo por causa das variaveis de ambiente, pois pode sobrescrever (eh raro, mas vai que) uma variavel de sistema gerando problemas no seu script

2014/1/15 Karin Klayton <address@hidden>
 

Pessoal,

Somente retornando num ponto que o Julio C.Neves comentou, por questões de segurança, não seria sempre bom manter as variáveis fechadas entre {}?

Eu costumo por padrão utilizar na atribuição de valores a variáveis VAR1=$(VALOR_OU_COMANDO), e na hora de referenciar elas utilizar as ${VAR1}.

Atenciosamente,
Karin Klayton Schiochet     


Em 10 de janeiro de 2014 09:55, Giovanni Souza <address@hidden> escreveu:

 

Julio e Willy,

Muito obrigado pelas dicas, todas funcionaram.

Abraço.


Em 9 de janeiro de 2014 19:56, Willy Romão <address@hidden> escreveu:

 

Giovanni,

Já que o arquivo está no padrão bash de atribuição de valores em variáveis, você pode usá-lo, por exemplo:

source exemplo.conf  #essa linha vai incluir tudo o que está em exemplo.conf no script atual.

if [ "${method}" == "update" ]
then
           if [ "${mode}" == "schema" ]
           then
...


Sendo assim, você não precisaria fazer todos os filtro para pegar os valores de method e mode, eles já estariam no script atual.

Att,

Willy Romão


On 01/09/2014 07:22 PM, Giovanni Souza wrote:
 
Caros boa noite,

Estou com um problema no meu script em uma parte que testa condições.

tenho um arquivo de nome exemplo.conf que contem variáveis:

method=update # (ou: rebuild)
mode=schema  # (ou: query)

Estou criando uma condição para testar o valor da variável do arquivo se é um desses valores acima. Porém retorna erro de comando não encontrado.

Poderiam ajudar na minha lógica de condição ??

Obrigado.

Segue uma parte do script onde gera o erro:

        importacaocore=`find ${importacao} -name '*_dados.conf'`

        method=`grep -e 'method'  ${importacaocore}|cut -d= -f2`

        mode=`grep -e 'mode'  ${importacaocore}|cut -d= -f2`

        nomecore=`grep -e 'nomecore'  ${importacaocore}|cut -d= -f2`

        url="" href="http://localhost/ccp.holograma/biserver/coreAdmin.do?dispatch=importSchema&datasource=HOLOGRAMA_BISERVER_LOCAL&method=$%7Bmethod%7D&mode=$%7Bmode%7D&path=$%7Bimportacao%7D/$%7Bnomecore%7D$%7Bjs%7D&token=$%7Btoken%7D" target="_blank">http://localhost/ccp.holograma/biserver/coreAdmin.do?dispatch=importSchema&datasource=HOLOGRAMA_BISERVER_LOCAL&method=${method}&mode=${mode}&path=${importacao}/${nomecore}${js}&token=${token}"

        echo $url

        if [${method} = update]

        then
           if [${mode} = schema]
           then

                wget --output-file=/dev/null --output-document=${importacao}/${nomecore}.txt $url &
           fi
        elif [${method} = update]

        then
           if [${mode} = query]
           then

                wget --output-file=/dev/null --output-document=${importacao}/${nomecore}.txt $url &
           fi

        elif [${method} = rebuild]

        then
           if [${mode} = schema]
           then

                wget --output-file=/dev/null --output-document=${importacao}/${nomecore}.txt $url &
           fi
        elif [${method} = rebuild]

        then
           if [${mode} = query]
           then

                wget --output-file=/dev/null --output-document=${importacao}/${nomecore}.txt $url &
           fi
        else

           echo "Informações de method e/ou mode do arquivo ${importacaocore} estão incorretas.
                 Preencher a variável method com: update caso queira atualizar ou rebuild caso deseja apagar estruturas e consultas do Solr e preencher com as informações do arquivo .txt
                 Preencher a variável mode com: schema caso queira alterar/atualizar a estrutura ou query caso queira alterar/atualizar as consultas"

        fi







--
Atenciosamente,
____________________________
Karin Klayton Schiochet
Linux Counter: 400920
E-mail: address@hidden
            address@hidden
MSN: address@hidden





--
Atenciosamente,
____________________________
Karin Klayton Schiochet
Linux Counter: 400920
E-mail: address@hidden
            address@hidden
MSN: address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]