PDA

Visualizza la versione completa : un semplice script bash ..


pannikeos
06-11-2004, 02:29
diventato un incubo!!!!

č semplice da realizzare da quallo ke ho capito, ma nn ne vengo fuori.. mi dareste una manina per piacere :P

deve fare questo:

1) creare se non c'č una dir
2) spostare i files all'interno di questa dir
3) se inserisco l'opzione -z creare un file tar.gz all'interno della suddetta dir.

non ne vengo fuori .. forse per l'annidamento ?



#!/bin/bash
while getopts :a:z:defg OPZIONE
do
case $OPZIONE in
a) echo "Opzione \"a\" con argomento $OPTARG." & {

if ! mkdir -p $OPTARG
then
echo "Non e' stato possibile creare la directory $OPTARG"
else
echo "e' stata creata la directory $OPTARG"
find ~ -atime 10 -exec cp -a {} $OPTARG \;
echo "ho spostato i files"
fi
};;

z) echo "Opzione \"z\" che non richiede argomento." &

{
echo "mi preparo a fare tar escludendo il tar stesso"
tar czvf $OPTARG/$OPTARG.tar.gz -C $OPTARG/ --exclude $OPTARG.tar.gz .
echo "fine"
};;

*) echo "Indicata un'opzione illegale.";;

esac

done



help help :cry: :cry:

Ilmalcom
06-11-2004, 10:42
Originariamente inviato da pannikeos


#!/bin/bash
while getopts :a:z:defg OPZIONE
do
case $OPZIONE in
a) echo "Opzione \"a\" con argomento $OPTARG." & {

if ! mkdir -p $OPTARG
then
echo "Non e' stato possibile creare la directory $OPTARG"
else
echo "e' stata creata la directory $OPTARG"
find ~ -atime 10 -exec cp -a {} $OPTARG \;
echo "ho spostato i files"
fi
};;


Premetto che č da _molto_ che non mi dedico al bash scripting, ma mi pare che tu abbia usato una sintassi un po' strana :master:

Hai detto che volevi controllare che la directory non esistesse prima di crearla, perciņ sicuramente intanto manca un controllo con test.


if ![ -d "$OPTARG" ]
then
mkdir -p "$OPTARG"
if [ $? -eq 0 ]
then
blablablablala //Fa ciņ che vuoi
else
echo "Errore nel creare la directory"
fi
fi


Mi pare che mkdir dia come exit status 0 se ha successo, 1 altrimenti...

pannikeos
07-11-2004, 23:15
ho sistemato diciamo il problema della dir con un test -d

ma il problema dell'opzione -z mi sta trucidando!

il testo č il seguente (a capirlo :P ):

Progettare uno script per la shell Bash che prenda un parametro sulla linea di comando. Il parametro deve essere una directory a cui l utente possa accedere, leggendone il contenuto e memorizzandovi nuovi file. Se la directory non esiste, deve essere creata. Lo script dovr`a archiviare (copiandoli) nella directory suddetta i file presenti nella propria home e nelle relative sottodirectory a cui non si accede da pi`u di una settimana. Prevedere la possibilit`a di invocare lo script con l opzione -z che, invece di copiare i file che rispondono al requisito sopra esposto, crea un unico archivio .tar.gz (creato con il comando tar e contenente i file), memorizzando quest ultimo nella directory passata come primo parametro.
- Si gestiscano opportunamente gli errori.
- Si commenti opportunamente il codice.
- Si provi lo script su alcuni esempi significativi.

Loading