Esame 7 luglio 2008 Parte di Unix 1) eseguire le seguenti operazioni binario : 1111 + 11100 = 101011 ottale : 1171766 + 501433 = 1673421 esadecimale : 101CD111 + 1110AB = 102DE1BC 2) Fare uno script che accetti 2 nomi di files come argomenti e, nel caso tali files siano ENTRAMBI eseguibili, spediscano per email all'utente studente un file di testo che contenga 2 righe, in ciascuna riga il MESE di ultima modifica o creazione di tali files. #!/bin/tcsh if ( -x $argv[1] && -x $argv[2] ) then set info1 = (`ls -l $argv[1]`) set info2 = (`ls -l $argv[2]`) echo $info1[6] >! infofile echo $info2[6] >> infofile mail studente < infofile endif Parte di Perl 3) scrivere uno script che faccia la lista lunga di una directory a piacere data come argomento dello script. Di ogni file trovato nella directory inoltre, si dovranno stampare in un file ASCII chiamato lista.txt le seguenti informazioni (per ogni file su una singola riga) : a) nome del file; b) mese e giorno di creazione od ultima modifica del file; c) sfruttando il mese ed il giorno, scrivere il giorno dell'anno di creazione od ultima modifica (si assuma che l'anno NON sia bisestile). #!/usr/bin/perl @lista = `ls -l $ARGV[0]`; print @lista; chomp @lista; open OUT,">lista.txt"; for ($i=1; $i<= $#lista; $i++){ @fields = split/ +/,$lista[$i]; if($fields[5] eq "Jan") { $day = $fields[6]; } elsif ($fields[5] eq "Feb") { $day = $fields[6]+31; } elsif ($fields[5] eq "Mar") { $day = $fields[6]+59; } elsif ($fields[5] eq "Apr") { $day = $fields[6]+90; } elsif ($fields[5] eq "May") { $day = $fields[6]+120; } elsif ($fields[5] eq "Jun") { $day = $fields[6]+151; } elsif ($fields[5] eq "Jul") { $day = $fields[6]+181; } elsif ($fields[5] eq "Aug") { $day = $fields[6]+212; } elsif ($fields[5] eq "Sep") { $day = $fields[6]+243; } elsif ($fields[5] eq "Oct") { $day = $fields[6]+273; } elsif ($fields[5] eq "Nov") { $day = $fields[6]+304; } else { $day = $fields[6]+334; } print OUT "$fields[8], $fields[5], $fields[6], $day\n"; } close OUT;