Hallo an Alle!
Folgendes Perl-Script habe ich - leicht abgewandelt - abgetippt:
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
my $Vergleich = system("chmod 0777 /home/gruppen/");
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Test-Ausgabe</title></head><body>\n";
print $Vergleich."\n";
if($Vergleich == 0) {
print "Alles in Ordnung!\n";
}
else {
print "Nix gudd!\n";
}
print "</body></html>\n";
Bei Ausführung mit einem Browser hat der Perl-Interpreter den system-Befehl nicht ausgeführt, anstatt dessen erhalte ich folgende Meldung am Bildschirm:
256 Nix gudd!
Ich muss dazu sagen, dass der system-Befehl auf viele Bash-Befehle nicht reagiert. Mein eigentliches Ansinnen ist die Integration von Befehlen wie “useradd”, “userdel” usw.. in Perl-Scripte. Bisher ist mir die Umsetzung mit system noch nie gelungen. Gleiches gilt für exec ud Backtics.
Rufe ich das gleiche Programm jedoch über die Bash-Befehlszeile auf, dann funktioniert es.
linux:/srv/www/cgi-bin # /usr/bin/perl -w ./bs4.pl
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Test-Ausgabe</title></head><body>
0
Alles in Ordnung!
</body></html>
Was mache ich falsch? Der Perl-Interpreter liegt in “/usr/bin/”. Ich arbeite (als Anfänger) mit Suse 9.2.
Viele Grüße:
H. Kammholz