2010-05-17 2 views
3
#!/usr/bin/perl 

Ceci est la ligne shebang à beaucoup de scripts que j'écris ces derniers temps.ligne de shebang portable

Le codage dur du chemin du binaire semble comme pouvant créer des problèmes. Par exemple, si l'un de mes utilisateurs a installé Perl sur/something_else/bin, il devra changer tous les shebangs.

J'ai vu quelques outils qui remplaceront automatiquement les shebang, mais je me demande s'il y a quelque chose de plus simple.

Répondre

11

env(1)

#!/usr/bin/env perl 
+0

qu'est-ce que/usr/bin/env est ailleurs sur leur système? – Mike

+1

Ensuite, il sera probablement * et * dans '/ usr/bin'. –

+0

Vous * pourriez * peut-être juste utiliser "#! Env perl" de "#! Perl" et compter sur le chemin défini (mais je ne l'aime pas). –

1

Pour les systèmes embarqués impairs où env est pas dans/usr/bin/env (boîtiers NAS en cours d'exécution par exemple funplug etc) cela pourrait fonctionner. Basé sur le ActivePerl/DOS trick

#!/bin/sh 
exec perl -x -S "$0" "[email protected]" 
#!perl 
print "hello";