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

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

Re: [shell-script] erro em IF no script de backup


From: Julio C. Neves
Subject: Re: [shell-script] erro em IF no script de backup
Date: Thu, 15 Mar 2012 11:16:34 -0300

Ahhhh! Vc perguntou pelos nipônicos e sobre eles foi a minha resposta.

Sobre o /dev/null, associe-o à bolsa da minha esposa: tudo que cai lá,
imediatamente some.... ;)

O ls que fiz, mandaria para a tela os arquivos listados, e/ou mandaria um
erro caso não encontrasse um deles. Como nenhuma dessas saídas me
interessava, joguei fora a saída do ls (> /dev/null) e mandei a saída de
erros para o mesmo lugar da saída primária (2>&1).

É necessário que se diga, que o Shell predefine alguns File Descriptors
(FD), p.ex: o da entrada primária é zero (vc pode redirecionar com < ou 0<
que é a mesma coisa), o da saída primária é um (vc pode redirecionar com >
ou 1> que é a mesma coisa), o da saída de erros é dois (2>), o do FIFO é
63, ...

Assim sendo o 2>&1 significa que a saída de erros (2>) está ligada (&) à
saída primária (1). Como anteriormente havia mandado a sdtout para
/dev/null, a stderr tb irá para lá.

Ahhh, só pra finalizar, uma cultura "quase" inútil. Se vc ler /dev/null,
ganha um EOF de cara (não ganha erro).

Abcs,
Julio
*Já foi lançado "Bombando o
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
". *
*Show **de interfaces gráficas sob Shell!*
*
*



Em 15 de março de 2012 09:31, Rodrigo Boechat <
address@hidden> escreveu:

> **
>
>
> Não foi exatamente isso que eu queria saber, mas a informação é
> interessante.
> Bem, pesquisei e achei isso:
> http://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/
> :)
>
> Se eu nascesse sabendo disso, minha vida seria muuuito mais fácil... Heheh
>
> Em 15-03-2012 08:37, Julio C. Neves escreveu:
> > Os nipônicos foram os precursores da miniaturização. A crença deles é
> > semelhante à dos programadores Shell: qto menor, melhor.
> >
> > Abcs,
> > Julio
> > *Já foi lançado "Bombando o
> > Shell<
> http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666
> >
> > ". *
> > *Show **de interfaces gráficas sob Shell!*
> > *
> > *
> >
> >
> >
> > Em 15 de março de 2012 00:49, Rodrigo Boechat<
> > address@hidden> escreveu:
> >
> >> **
> >>
> >>
> >> Julio,
> >>
> >> Beleza?
> >> Me exlica esse método "Nipônico"?
> >> :)
> >>
> >> Valeu!
> >> Rodrigo Boechat
> >>
> >> Em 14-03-2012 20:37, Julio C. Neves escreveu:
> >>> Fala Rizada,
> >>> cara, vc tá complicando coisa simples! Se vc fizer echo $Var ou echo
> >>> ${Var}, dá mesma.
> >>>
> >>> Olha só isso:
> >>> $ Var=5
> >>> $ echo Uma boa ideia é tomar $Var:, digo, $Var1, ou melhor ${Var}1
> >>> Uma boa ideia é tomar 5:, digo, , ou melhor 51
> >>>
> >>> Ou seja, o nome de uma variável é formado por letras, números e
> sublinha.
> >>> Eu queria escrever "Uma boa ideia é tomar 51", mas te mostrei que $Var:
> >>> funciona, pq : não pode fazer parte do nome da variável e mostrei que
> >> $Var1
> >>> não funciona, pq é outra variável, que está vazia. O uso de chaves
> para 2
> >>> coisas: para isolar o nome das variáveis, como nesse caso; ou para
> >>> complicar a legibilidade do prg... ;).
> >>>
> >>> Vou encher mais o teu saco: É isso aí meu amigo. Continue a escrever as
> >>> tuas variáveis em letras maiúsculas até o dia que vc, sem querer,
> >> apelidar
> >>> uma variável com o mesmo nome de uma variável do sistema. Ai vc põe 5
> >> nela
> >>> e o sistema põe gnome. Vc vai ficar maluquinho para descobrir o que
> está
> >>> acontecendo e, se pedir arrego para a lista, vou te gozar muuuuito, pq
>
> >>> te falei sobre isso.
> >>>
> >>> Agora, vou te dar uma colher de chá e responder à sua dúvida: qdo shell
> >>> expande um metacaractere, ele pode gerar mais de um arquivo e o
> operador
> >> -e
> >>> do cmd test é unário, isto é, testa um arquivo por vez. Vc tem alguns
> >> modos
> >>> de resolver isso. Vou mostrar 2:
> >>>
> >>> Método Ibérico:
> >>> $ Var=$(ls *.sh)
> >>> $ echo $Var
> >>> calc21.sh tela_servicos.sh
> >>> $ echo $Var | sed 's/ / -a -e /g'
> >>> calc21.sh -a -e tela_servicos.sh # Já com conectores
> >>> $ test -e $(echo $Var | sed 's/ / -a -e /g')
> >>> $ echo $?
> >>> 0
> >>> $ [ -e naoexiste -a -e $(echo $Var | sed 's/ / -a -e /g') ] || echo Tem
> >> lixo
> >>> Tem lixo
> >>>
> >>> Método Nipônico:
> >>> $ ls $Var> /dev/null 2>&1 || echo Tem lixo
> >>>
> >>> Rizada, eu me lembro que vc está vindo ao RJ, mas não me lembro a data.
> >>> Acho porém que estarei fora, veja só ester mês: nos dias 16-18 estarei
> em
> >>> Porto Velho, 24 em Niterói e 25-30 em Fortaleza. Será uma pena se
> >> coincidir
> >>> e não pudermos falar umas besteiras juntos... :(
> >>>
> >>> Em compensação, dias 09-12/05 estarei na UNIT em Maceió. Aí vc pinta
> por
> >> lá.
> >>> Abcs,
> >>> Julio
> >>> *Já foi lançado "Bombando o
> >>> Shell<
> >>
> http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666
> >>> ". *
> >>> *Show **de interfaces gráficas sob Shell!*
> >>> *
> >>> *
> >>>
> >>>
> >>>
> >>> Em 14 de março de 2012 14:46, Anderson Duarte
> >>> <address@hidden>escreveu:
> >>>
> >>>> **
> >>>>
> >>>>
> >>>> Pessoal, pesquisei aqui na lista, mas não achei um problema igual ao
> >> meu,
> >>>> geralmente o pessoal aqui faz script de backup usando o rsync, e não
> é o
> >>>> meu caso.
> >>>>
> >>>> O Script em questão é esse:
> >>>>
> >>>> http://pastie.org/3595113
> >>>>
> >>>> Mas, sinceramente.. estou cego, e não estou enxergando o erro.
> >>>>
> >>>> O erro é este:
> >>>>
> >>>> ./backup.sh: linha 17: [:
> >> /var/backup/servidor/servidor_20120313.tar.bz2:
> >>>> esperado operador binário
> >>>>
> >>>> Pelo que entendi, quando ele encontra mais de um tar.bz2, acontece o
> >> erro.
> >>>> Os backups são gerados em diversos servidores e jogados neste
> diretório,
> >>>> eu quero apenas copiar.
> >>>>
> >>>> Nem o servidor, nem o script são meus, mas eu não queria fuçar muito,
> >> pois
> >>>> quero deixar como o dono deixou. Apenas quero ver mesmo onde estou
> >> marcando
> >>>> bobeira.
> >>>>
> >>>> --
> >>>> Anderson Duarte
> >>>> @andersonrizada
> >>>> http://rizada.org
> >>>>
> >>>> [As partes desta mensagem que não continham texto foram removidas]
> >>>>
> >>>>
> >>>>
> >>> [As partes desta mensagem que não continham texto foram removidas]
> >>>
> >>>
> >>>
> >>> ------------------------------------
> >>>
> >>> ----------------------------------------------------------
> >>> Esta lista não admite a abordagem de outras liguagens de programação,
> >> como perl, C etc. Quem insistir em não seguir esta regra será moderado
> sem
> >> prévio aviso.
> >>> ----------------------------------------------------------
> >>> Sair da lista: address@hidden
> >>> ----------------------------------------------------------
> >>> Esta lista é moderada de acordo com o previsto em
> >> http://www.listas-discussao.cjb.net
> >>> ----------------------------------------------------------
> >>> Servidor Newsgroup da lista: news.gmane.org
> >>> Grupo: gmane.org.user-groups.programming.shell.brazil
> >>>
> >>> Links do Yahoo! Grupos
> >>>
> >>>
> >>>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>
> >>
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > ----------------------------------------------------------
> > Sair da lista: address@hidden
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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