Thread Shell-Error durchs benutzen von ``
(36 answers)
Opened by FlorianL at 2008-01-21 15:12
Hallo zusammen,
Ich habe ein ksh script gebastelt das den ls-output in eine Datei schreibt und per perl regex den output so abändert wie ich ihn brauche. Das Script funktioniert zwar, aber ich bin damit nicht zufrieden und wollte es nun mal eben in perl umschreiben: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/perl use strict; my $filespath = "/home/re17830/chksize/checksize_db"; my $date = `date +%y-%m-%d`; my $day = `date +%d`; my $predaycheck = $date--; my $preday = $day--; my $month = `date +%m`; my $premonth = $month--; if ($month == 01) { $premonth = "12"; } chomp(my $prechk = `echo $preday |wc -ck`); if ($prechk == 2) { $preday = "0$predaycheck"; } my $pre_date = "`date +%y-%m`-$preday"; my $newfile = "$filespath/SizeCheck-$date\.dat"; my $oldfile = "$filespath/SizeCheck-$pre_date\.dat"; my @filesystem = `ls -Rlgo /`; open(REWRITE, ">$newfile"); foreach(@filesystem) { chomp(); my @line = split(/ +/); if ($line[0] =~ m/^\//g) { print REWRITE "\n$line[0]\n"; } elsif (($line[0] =~ m/^dr/g) || ($line[0] =~ m/^-r/g)) { print REWRITE "$line[2]\t\t$line[6]\n"; } else { next; } } if ($day == 28) { `rm $filespath/SizeCheck-*-\$premonth\-*`; } Problem 1: Die Datei wird nicht richtig benannt, Output file (REWRITE) hat den namen "SizeCheck-7.dat" statt "SizeCheck-08-01-21.dat" Ich schätze das bekomm ich noch hin, aber das andere Problem ist seltsam... Problem 2: Beim ausführen bekomme ich folgende Fehlermeldung: Quote Dabei kann es sich ja nur um diese Zeile handeln: Code (perl): (dl
)
chomp(my $prechk = `echo $preday |wc -ck`); Jemand dazu ne idee? Vor allem bei Punkt 2 hab ich kein plan?! Danke & Schönen Tag noch :) |