Effettivamente era pieno di bug.. Questocon tutte le limitazioni del caso.. Tra cui la creazione dei file ed il discorso di come fare per controllare la directory sia se passo un argomento all'opzione sia in caso contrario..codice:#Utilizzo directory corrente se non specificata if [ -n $2 ] && [ -d $2 ]; then BACKUP_DIR="$1" else BACKUP_DIR="." fi ## FILE #Formato file da eliminare FILE_TO_REMOVE="jpeg jpg tiff tif png bmp" #Formato file da comprimere FILE_TO_COMPRESS="model prt pd dwg" #File da printare FILE_TO_PRINT="$FILE_TO_COMPRESS $FILE_TO_REMOVE" ## LOG #Impostazione File di log #touch "/tmp/backup_removed_`date +%Y%m%d`.log" #touch "/tmp/backup_compressed_`date +%Y%m%d`.log" LOG_REMOVED="/tmp/backup_removed_`date +%Y%m%d`.log" echo "Removed files from directory $BACKUP_DIR on `date +%d-%m-%Y`:\n" >> "$LOG_REMOVED" LOG_COMPRESSED="/tmp/backup_compressed_`date +%Y%m%d`.log" echo "Compressed files in directory $BACKUP_DIR on `date +%d-%m-%Y`:\n" >> "$LOG_COMPRESSED" #Errore E_OPTERR=65 #Linea di comando senza argomento if [ "$#" -eq 0 ] then # Script needs at least one command-line argument. echo "Usage $0 -[options c,r,s,p]" exit $E_OPTERR fi #Funzione compressione file compress_file() { echo "Compressione file..." for EXT in "$FILE_TO_COMPRESS"; do find "$BACKUP_DIR" -name \*."$EXT" -exec compress {} \; -exec echo {} >> "$LOG_COMPRESSED" \; done echo "Compressione file... completa." } #Funzione rimozione file remove_file() { echo "Rimozione file..." for EXT in "$FILE_TO_REMOVE"; do find "$BACKUP_DIR" -name \*."$EXT" -exec rm {} \; -exec echo {} >> "$LOG_REMOVED" \; done echo "Rimozione file... completa." } #Funzione print file --TEMPORANEO-- print_file() { for EXT in "$FILE_TO_PRINT"; do echo $EXT; done } set -- `getopt "crps:" "$@"` # Sets positional parameters to command-line arguments. while [ ! -z "$1" ] do case "$1" in -c) compress_file;; -r) remove_file;; -s) compress_file && remove_file;; -p) print_file;; esac shift done #Funzione print file #print_file(){ #for EXT in "$FILE_TO_PRINT"; do # find "$BACKUP_DIR" -name \*."$EXT" -print {} \; #done #}