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

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

Re: [shell-script-pt] Configurando e testando variáveis


From: Julio C. Neves
Subject: Re: [shell-script-pt] Configurando e testando variáveis
Date: Fri, 24 Jul 2020 00:44:05 -0300

Vc "executou" o script através do cmd source?

Ela só será configurada dessa forma e o shebang é para te lembrar que vc tem de executar com o source.

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
Somente nesta semana de 10-17/08, as inscrições estarão
abertas para uma nova turma. Veja mais detalhes em:

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.







Em sex., 24 de jul. de 2020 às 00:05, Jamenson Ferreira Espindula de Almeida Melo <jafesp@gmail.com> escreveu:
Em qui., 23 de jul. de 2020 às 10:29, Julio C. Neves
<julio.neves@gmail.com> escreveu:
>
> Fala Jamenson, bom dia.
> te confesso que qdo li o seu 1o. email não entendi bem a sua dúvida, mas tb me lembro que a 1ª linha do script era de um shebang para obrigar a execução via source, o que não criaria um subshell. Me lembro disso, pq havia menos de 3 meses havia incluído um tópico sobre isso na 12ª edição do meu livro (que creio não será publicada) e ela talvez seja o que vc procura. Vou postar o texto abaixo, que isso pode ser que te ajude.
>
> Como o comando source não chamará um interpretador para executar as linhas do arquivo, o shebang (que normalmente é um #!/bin/bash, mas não necessariamente isso) não será visto como um interpretador, mas como um comando comum - não esqueça que sua função é indicar o interpretador que atuará sobre o arquivo - não importando o que estiver ali.
>
> Uma vez entendido isso, vamos supor que você tenha um programa que só pode ser executado via source, então podemos alertar o usuário de uma forma bacana e muito rara de se ver usando somente o shebang, olha só:
>
> $ cat testa.source
> #!/bin/echo Para "executar" esse arquivo, use: $ source
> echo Cheguei nesta linha
>
> Caso eu execute este programa, o seu nome será incluído no final da mensagem do comando echo, veja:
>
> $ ./testa.source
> Para "executar" esse arquivo, use: $ source ./testa.source
>
> Repare que na sua execução ela não chegou à segunda linha, pois não deu a mensagem correspondente, porém executando com o source, vem:
>
> $ source ./testa.source
> Cheguei nesta linha
>
>
> Como esse trecho ainda não foi lido nem testado por ninguém e a literatura sobre o tema é muito escassa, agradeço críticas e comentários dos colegas.
>
> Abraços,
> Julio
>
Saudações, eminente Júlio. Obrigado por responder.

Simples e direto: qual é o erro no seguinte script? Porque a variável
_não_ é configurada?

#!
# Testar se a variável está configurada.

if env test -n "${RCLONE_CONFIG_PASS}"
then
    echo "OK"
else
    echo "Senha, por favor ..."
    read -s RCLONE_CONFIG_PASS
    export RCLONE_CONFIG_PASS
fi

Cordialmente,

Jamenson Ferreira Espindula de Almeida Melo
Jaboatão dos Guararapes, Pernambuco, Brasil
Usuário GNU/Linux nº 166197
https://linuxcounter.net/cert/166197.png

Impressão digital da chave PGP:
234D 1914 4224 7C53 BD13  6855 2AE0 25C0 08A8 6180

_______________________________________________
Lista brasileira de usuários de shell script
Endereço de e-mail da lista: shell-script-pt@nongnu.org
Para se inscrever ou desinscrever acesse: https://lists.nongnu.org/mailman/listinfo/shell-script-pt
Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, acesse https://lists.nongnu.org/archive/html/shell-script-pt/

NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize somente esta.

reply via email to

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