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: