Poniższy prosty skrypt Perla wyświetli zawartość katalogu, a katalog zostanie wymieniony jako argument skryptu. Jak w systemie Linux mogę przechwytywać błędy odmowy uprawnień? Obecnie, jeśli skrypt jest uruchamiany w katalogu, do którego użytkownik nie ma uprawnień do odczytu, nic się nie dzieje w terminalu.Jak przechwycić błędy odmowy uprawnień od operatora globu?
#!/bin/env perl
use strict;
use warnings;
sub print_dir {
foreach (glob "@_/*")
{print "$_\n"};
}
print_dir @ARGV
To, o co prosisz, to nietypowe zachowanie z "globu". 'stat' może powiedzieć, czy masz dostęp do katalogu. –
Rozumiem, że glob nie ma świadomości uprawnień użytkownika, ale zakładam, że powłoka zwraca błąd do skryptu, ale nie jest drukowany, czy to nie jest poprawne? Interesuje mnie, jak złapać błąd z powłoki i wydrukować. – GL2014
Widzę, co masz na myśli teraz, po prostu próbowałem echo/root/* i nie zwraca błąd w powłoce. Dziękuję Ci. – GL2014