2011-03-18 5 views
1

Je voudrais exécuter mes programmes javascript avec le Rhino shell sans faire la première ligne #!/Bin/sh. '#' n'est pas un caractère de commentaire en javascript. Je ne veux pas non plus avoir une extension .js.Comment exécuter des programmes javascript à partir du shell Linux?

Est-ce possible? Je me souviens d'avoir longuement lu quelque chose à propos d'une méthode pour faire fonctionner des programmes Java sans interpréteur explicite. Google n'a pas été à venir, cependant.

Répondre

2

Vous voulez utiliser le module noyau binfmt_misc pour cela. Je n'ai pas un interpréteur JS installé, mais je suppose que la magie serait quelque chose comme ça pour Rhino:

# If it's not included in your kernel 
sudo modprobe binfmt_misc 
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc 

# Register the .js extension as being run by Rhino 
echo ':JSScript:E::js::/path/to/rhino:' > /proc/sys/fs/binfmt_misc/register 

Cela suppose que vos scripts sont heureux de courir comme:

/path/to/rhino /path/to/your/script 

Si vous devez passer des arguments à Rhino, alors vous devrez configurer un wrapper. La documentation complète pour binfmt_misc est here.

+0

Et n'oubliez pas de rendre le script exécutable. –

+0

Comme je voulais pouvoir nommer mes scripts sans l'extension de fichier, j'ai ajouté: echo ': javascript: M :: //! ::/usr/bin/js:'>/proc/sys/fs/binfmt_misc /registre – Will

0

Oui, il suffit d'appeler rhino /path/to/your/js/file

Si vous ne disposez pas d'un programme rhino dans votre chemin, le remplacer par java org.mozilla.javascript.tools.shell.Main

Questions connexes