Das folgende einfache Perl-Skript listet den Inhalt eines Verzeichnisses auf, wobei das Verzeichnis als Argument für das Skript aufgeführt wird. Wie kann ich auf einem Linux-System Fehler mit Zugriffsverweigerung erfassen? Wenn dieses Skript derzeit in einem Verzeichnis ausgeführt wird, für das der Benutzer keine Leseberechtigung hat, passiert nichts im Terminal.Wie erhalte ich Fehler bei der Berechtigung verweigert vom Glob-Operator?
#!/bin/env perl
use strict;
use warnings;
sub print_dir {
foreach (glob "@_/*")
{print "$_\n"};
}
print_dir @ARGV
Was Sie fragen, wäre atypisches Verhalten von einem 'glob'. 'stat' kann Ihnen sagen, ob Sie Zugriff auf das Verzeichnis haben. –
Ich verstehe, dass Glob keine Kenntnis von den Berechtigungen des Benutzers hat, aber ich nehme an, dass die Shell einen Fehler an das Skript zurückgibt, aber es wird nicht gedruckt, ist das nicht korrekt? Mich interessiert, wie ich den Fehler von der Shell abfangen und ausdrucken kann. – GL2014
Ich sehe, was Sie jetzt meinen, ich habe gerade versucht, echo/root/* und es gibt keinen Fehler in der Shell. Vielen Dank. – GL2014