Pour obtenir la Permission Refusé l'exécution de perl exécutables
Je suis sous OS X et, fondamentalement, je voulais mettre en place un répertoire où j'ai pu laisser tomber certains Perl exécutables et de les utiliser sans avoir à taper
$perl /this/is/the/path/name.pl
à chaque fois que je voulais en utiliser un. J'ai donc modifié mon .bash_profile pour ajouter un chemin d'accès d'un répertoire qui se trouve sur mon bureau que je veux déposer des exécutables. J'ai modifié mon .bash_profile en ajoutant
PATH=$PATH:/Users/Wes/Desktop/Perl_dir; export PATH
Maintenant, il trouve les fichiers Perl que je veux, mais refuse de me autorisation comme
-bash: /Users/Wes/Desktop/Perl_dir/phylo.pl: Permission denied
Comment puis-je résoudre ce problème? Je vous remercie à l'avance.
OriginalL'auteur Wes Field | 2013-07-08
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que le script perl lui-même est à l'exécutable. Vous pouvez le faire avec une commande comme ceci:
Puis assurez-vous que la première ligne du script est un "hash-bang" de la ligne d'invoquer perl, quelque chose comme:
Avec à la fois de ceux en place, je pense que votre script doit commencer à travailler. (Note: Le
-w
n'est pas strictement nécessaire, et peut causer des avertissements dans votre script. Je ne le suggèrent, cependant, pour le développement de nouveaux du code perl, car il incite à une certaine marque de perl hygiène.)-w
n'est pas le même queuse warnings;
, et ce n'est pas nécessairement utile pour les OP d'obtenir des avertissements de ses modules CPAN. Je vous suggère de retirer la recommandation, et le remplacer par un plus générale de la recommandation de toujours avoiruse strict;
etuse warnings;
dans vos scripts.Pour être complet:
chmod +x /Users/Wes/Desktop/Perl_dir/*.pl
☺L'OMI à l'aide de glob avec
chmod +x
est l'intensification de la sécurité "zone grise": je préfère la loi de marquer quelque chose comme exécutable être toujours explicites.OriginalL'auteur Joe Z
En dehors de réglage CHEMIN d'accès correctement, vous devez également:
assurez-vous que les fichiers exécutables
vérifier votre "ligne shebang", c'est à dire de la première ligne du script doit contenir
chemin d'accès absolu à l'interpréteur perl sur votre machine, comme ceci:
À trouver le chemin d'accès, utilisez la commande:
OriginalL'auteur Alois Mahdal
vous devrez peut-être autoriser l'utilisation de sudo chmod, essayez ceci:
Si pas de sudo tout en chmod, vous devez exécuter comme ceci:
OriginalL'auteur Patrick