Je suis perplexe et me sens stupide. J'ai essayé toutes les combinaisons de recherche auxquelles je pouvais penser pour comprendre cela. Cela semble simple, mais étant nouveau pour javascript je ne vois rien d'utile dans ma recherche d'exemples ou de démos. Je cherche à utiliser un script comme un script python ou perl pour lancer une simple commande linux. L'interpréteur est opérationnel et je suis à la recherche de ressources js côté serveur pour en savoir plus sur js. J'ai trouvé beaucoup d'exemples utiles si je veux faire ce genre de choses dans un navigateur - mais je ne veux pas utiliser le navigateur. Je ne pouvais pas trouver une requête comme celle-ci sur le site (même si je suis sûr que je ne demande pas le bon chemin) donc si c'est vraiment un post redondant n'hésitez pas à fermer et pointez-moi dans la bonne direction.javascript (spidermonkey) comment exécuter une commande linux depuis js shell?
Répondre
Vous n'avez pas accès au système au-delà du navigateur. Que ce soit Windows ou Linux, votre "shell js" est encadré dans le navigateur. Il n'y a pas d'accès au système de fichiers ni à aucune application au-delà du navigateur. JS est un langage de script qui est interprété par le navigateur.
Vous avez un peu d'accès au monde en dehors du navigateur, mais seulement sur IE en utilisant ActiveX, mais c'est hors du sandbox et ce n'est plus du javascript pur. Si vous recherchez sur les forums, vous ne trouverez aucune documentation qui parle de l'accès aux fichiers en javascript, sans ActiveX. ActiveX n'est pas disponible sur Linux ou Firefox.
Vous voudrez peut-être lire sur wikipedia pour en savoir plus sur javascript, DOM et le bac à sable. http://en.wikipedia.org/wiki/JavaScript
Rechercher "system()" sur this page, qui devrait être un début (désolé, je ne l'ai pas réellement utilisé SpiderMonkey encore.)
Je pense que si vous pouvez compiler leur fonction JSNative myjs_system() , vous pouvez ensuite l'appeler depuis votre code JavaScript.
Ok, je me sens moins stupide maintenant. Je l'ai eu de travail en utilisant JScript et le jsc.exe fourni avec le .NET Framework sur Windows:
> var myFileSystemObj = new ActiveXObject("Scripting.FileSystemObject");
>
> var pathToFileDir = ".";
> var myFolder = myFileSystemObj.GetFolder(pathToFileDir);
>
> var myEnum = new
> Enumerator(myFolder.Files);
>
> for
> (;!myEnum.atEnd();myEnum.moveNext()) {
> print(myEnum.item()) }
qui me donne les noms de fichiers dans un répertoire facile et agréable sur le vieux XP. Donc, je suppose que la question devrait être: y a-t-il une facilité similaire pour faire cela sur Linux? J'essaye de recompiler le moteur de Spidermonkey avec le drapeau JS_HAS_FILE_OBJECT=1
, mais il a des erreurs dehors, donc j'ai quelques lecture & travail devant moi pour que cela fonctionne, mais je pense que je me dirige dans la bonne direction. Des astuces ou des suggestions sur une manière différente de le faire avec javascript seraient les bienvenues (au-delà de "use N", où N = python, perl, java, etc ...).
Pour Linux, j'ai trouvé que EJScript a un support de fichier qui fonctionne hors de la boîte. Cela me permet de faire ce que je veux faire de toute façon. Je vais quand même essayer de compiler spidermonkey avec le flag File_Object parce que je suis têtu, mais jusqu'ici je n'ai aucun problème à recommander EJScript pour les programmeurs qui veulent essayer javascript sur le serveur.
Vous pouvez le faire avec node.js 'exec
.
# install node.js (debian/ubuntu)
sudo apt-get install nodejs
# run node.js CLI
node
D'un exemple trouvé here:
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ls -la", puts);
cette commande affiche une liste de répertoires.
Merci GGG. Je vois finalement ceci une année + après que vous l'ayez quitté, mais j'aurais probablement choisi ceci comme réponse acceptée si le moment de ma question était différent (j'ai employé le noeud assez fréquemment récemment comparé à l'ejscript). –
- 1. Groovy exécuter « cp * » commande shell
- 2. dans une commande shell
- 3. fichier E/S dans Spidermonkey
- 4. os.system() exécute la commande sous quel shell linux?
- 5. Vous voulez appeler une commande shell Linux à partir de Java
- 6. resume/suspendre enery star linux depuis la ligne de commande
- 7. Commandes Linux depuis Java
- 8. Sérialisation JSON dans Spidermonkey
- 9. Comment utiliser SpiderMonkey sur Windows
- 10. exécuter une commande shell unix si la sortie ne dispose pas d'un certain nombre de lignes
- 11. Comment exécuter ShellExecute sur l'objet shell clsid?
- 12. Comment démarrer une vidéo flash depuis javascript?
- 13. Comment shell exécuter un fichier en C#?
- 14. linux - exécuter le script php depuis la ligne de commande quand php est installé en tant que module apache
- 15. appelant une fonction javascript depuis activex
- 16. Linux shell équivalent sur IIS
- 17. JavaScript shell?
- 18. Comment faire une interruption de commande $ (shell) défectueuse Make
- 19. Comment exécuter des réponses JS XHR dans Dojo?
- 20. C Shell: Comment exécuter un programme avec des arguments de ligne sans commande?
- 21. Commande Shell qui parcourt les lignes?
- 22. Double commande pour exécuter des programmes dans l'invite de commande
- 23. Linux ligne de commande: diviser une chaîne
- 24. Comment faire emacs shell exécuter le fichier init automatiquement?
- 25. Comment rediriger stdin à partir d'un script shell vers une commande dans le script shell?
- 26. "Charger" un fichier depuis le shell django
- 27. configurez knotify pour exécuter une commande personnalisée
- 28. Comment puis-je exécuter des commandes externes en C++/Linux?
- 29. Comment faire SVN exécuter une commande sans apporter de modifications
- 30. En Python - comment exécuter une commande système sans sortie
JavaScript côté serveur est une bête différente, IIRC des jours de gloire Netscape ... – Kev
JavaScript peut manquer de navigateurs! Voir WSH de Windows avec son JavaScript ainsi que l'interpréteur VBScript, les deux avec un accès complet au système. – PhiLho