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

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

Re: [shell-script] Re: Alterar data em lote


From: Julio C. Neves
Subject: Re: [shell-script] Re: Alterar data em lote
Date: Sat, 14 Jun 2014 18:27:54 -0300

Desculpe meter minha colher de pau no bolo de vcs mas o Itamar usou o termo "proteger" (você precisa proteger a variável "i"), qdo o termo correto seria "delimitar".

Não estou criticando a resposta do Itamar de forma alguma, ele resolveu o problema do Rodrigo numa boa e tenho visto peals respostar que o Itamar coloca na lista, que ele é bom nisso. Mas quero passar esse conceito que eu vejo muita gente usar indevidamente. Vamulá:

Nos primórdios do Bourne Shell vc só conseguia manipular 9 parâmetros $1, $2, ..., $9. $10 significava o $1 seguido de um zero. Isso não quer dizer que vc não conseguia passar mais de 10 parâmetros, mas vc tinha de usar macetes para trabalhar com parâmetros de ordem superior a 9 (o shift era um deles).

Foi por isso que foi criada a expansão de parâmetros (cuja definição foi mega ampliada para o que vemos hj). Assim se $10 significava o $1 seguido de um zero, ${10} significava o 10º parâmetro. Aí o pessoal passou a usar as chaves indiscriminadamente o que dificulta a legibilidade e enfeia o prg.

Então qdo vc fez:
0${i}010000
vc dizia que os zeros não eram o nome da variável. O nome estava limitado ao 'i'.

Olha um exemplo interessante:
Bold=$(tput bold)
Norm=(tput sgr0)
echo Escrevendo em ${bold}bold e voltando ao $Norm normal

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 02 a 06/06
São Paulo 4Linux 21 a 25/07
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 14 de junho de 2014 10:12, address@hidden [shell-script] <address@hidden> escreveu:
 

Caro Rodrigo

você precisa proteger a variável "i"
Tente assim:

"for ((i=1;i<10;i++)); do touch -t 0${i}010000 arq.${i}*; done"


Sem mais
Itamar



reply via email to

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