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

Re: Newbie in programmazione bash



io userei un sistema più semplice

========================
#!/bin/bash

y=qualchecosa

find . -type f -ctime $y -exec cp {} /altra/posizione/ \;

exit
========================




Il 01/03/13, breathe@rotellaweb.it<breathe@rotellaweb.it> ha scritto:
> Il 2013-03-01 21:16 Giovanni "Ivan" Alberotanza ha scritto:
>> MaX ha scritto:
>>> devi essere più chiaro quando scrivi gli script... impara a
>>> incolonnare i comandi
>>> in modo da creare una gerarchia.
>>> Inoltre ti consiglio:
>>> di usare sempre lo stesso stile di scrittrura, in quanto migliora il
>>> debug.
>>> di fare stampare a video le variabili prima di processarle o dopo...
>>> tipo...
>>> echo A=$A
>>> echo B=$B
>>> C=$(($A + $B))
>>> echo C=$C
>>>
>>> #!/bin/bash
>>>
>>> y=1
>>>
>>> while [ $y -le 15 ], do
>> qui sopra dopo la quadra chiusa ci va il punto e virgola non la
>> virgola
>>>
>>>         find ./ -type f -ctime $y > lista.txt
>>>
>>>         for i in `cat lista.txt`; do
>>>                 cp $i $y/
>>>                 y=$(( $y + 1 ))
>>>         done
>>> done
>>>
>>>
>>> Il 01/03/13, bodrato@mail.dm.unipi.it<bodrato@mail.dm.unipi.it> ha
>>> scritto:
>>>> Ciao,
>>>>
>>>> Il Ven, 1 Marzo 2013 8:11 pm, breathe@rotellaweb.it ha scritto:
>>>>> data una variabile y, genero un ciclo che incremento fino a 15,
>>>>> quindi
>>>>> vorrei cercare in una directory i file la cui data di creazione è
>>>>> uguale
>>>>> ad y e mettere l'elenco in un file.
>>>> ??? sinceramente non ho capito nulla di quel che vuoi fare :-)
>>>>
>>>>> Non funziona, nel senso che cp mi copia i file con -ctime 1 uno
>>>>> per
>>>>> directory (1-15).
>>>>> #!/bin/bash
>>>>>          y=1
>>>>>          while [ $y -le 15 ]
>>>>>          do
>>>>>          find ./ -type f -ctime $y > lista.txt
>>>>>          for i in `cat lista.txt`; do cp $i $y/
>>>>>                  y=$(( $y + 1 ))
>>>>>          done
>>>> C'è un ciclo for, che tra "do" e "done" contiene la copia di un
>>>> file e
>>>> l'incremento di y. Quindi fa giustamente quel che dici sopra.
>>>>
>>>> Questo ciclo è annidato dentro un while cui manca il "done", direi
>>>> che
>>>> questo è un problema.
>>>>
>>>> Cià,
>>>> m
>>>>
>>>> --
>>>> http://bodrato.it/papers/
>>>>
>>>>
>>>> --
>>>> Per REVOCARE l'iscrizione alla lista, inviare un email a
>>>> debian-italian-REQUEST@lists.debian.org con oggetto "unsubscribe".
>>>> Per
>>>> problemi inviare un email in INGLESE a listmaster@lists.debian.org
>>>>
>>>> To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org
>>>> with a subject of "unsubscribe". Trouble? Contact
>>>> listmaster@lists.debian.org
>>>> Archive:
>>>>
>>>> [🔎] 36713.151.32.166.170.1362166035.squirrel@mail.dm.unipi.it">http://lists.debian.org/[🔎] 36713.151.32.166.170.1362166035.squirrel@mail.dm.unipi.it
>>>>
>>>>
>>>
> Questo è il codice scritto in maniera corretta e che non fa cosa
> vorrei, cioè copia sempre i file con -ctime 1 in tutte le cartelle:
>
> #!/bin/bash
>
> y=1
>
> while [ $y -le 15 ];
> do
>        find ./ -type f -ctime $y > lista
>          for i in `cat lista`;
>   do
>           cp $i $y/
> done
>        y=$(( $y + 1 ))
> done
>
>
>
> --
> Per REVOCARE l'iscrizione alla lista, inviare un email a
> debian-italian-REQUEST@lists.debian.org con oggetto "unsubscribe". Per
> problemi inviare un email in INGLESE a listmaster@lists.debian.org
>
> To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
> Archive:
> [🔎] 8f1f5684c75c31827cc532f79e9302d9@rotellaweb.it">http://lists.debian.org/[🔎] 8f1f5684c75c31827cc532f79e9302d9@rotellaweb.it
>
>


-- 
ciao,
MaX


Reply to: