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: Wed, 14 Mar 2012 20:37:06 -0300

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 já
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]



reply via email to

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