vmware -> use: command not found ... problème de perl ?? - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 21-10-2007 à 17:47:56
|
perl pour interpréter les script perl ça ira mieux que sh
Marsh Posté le 21-10-2007 à 17:55:50
Bouhhh honte à moi :-)
Ce qui m'étonnes c'est que je l'ai déjà installé sur mon autre PC et je me souviens pas avoir lancé avec cette commande ... je suis tout honteux !!
Merci en tous cas pour cette réponse rapide
Marsh Posté le 21-10-2007 à 17:59:10
Au fait, que je sois moins bête, la commande "sh" interprète quels fichiers ??
Merci
Marsh Posté le 21-10-2007 à 18:09:58
les scripts shells
Marsh Posté le 21-10-2007 à 23:15:36
jjo a écrit : Bouhhh honte à moi :-) |
t'as du le lancer directement en faisant ./vmware-install et au tout début du fichier il doit y avoir une ligne #!/bin/perl ou équivalent
et du coup ton shell trouve tout seul que l'interpréteur perl doit être utilisé pour le script.
Et quand tu spécifies sh, bah tu lui passes un langage qu'il ne comprend pas...
Marsh Posté le 22-10-2007 à 09:34:11
ReplyMarsh Posté le 22-10-2007 à 09:34:52
matafan a écrit : C'est le kernel qui trouve l'interpréteur, pas le shell. |
le kernel n'a rien à voir là dedans
Marsh Posté le 22-10-2007 à 12:42:02
matafan a écrit : Et si |
Trouve nous une source qui explique ton propos parce là... C'est facile de sortir des choses de ce genre la. Tiens : c'est le ventirad qui trouve l'interpréteur... pas le kernel
T'as un scipt. L'interpréteur est soit le bang machin sha-bang en haut du fichier, soit il est donné par l'utilisateur lors de l'exécution... Et qui regarde tout ca... ben le shell
Ce shell exécute l'interpréteur et hop on a un interpréteur
Marsh Posté le 22-10-2007 à 12:48:03
Mieux qu'une source, tu peux faire un essai et réfléchir deux secondes. Tu te créé un script avec un she-bang. Tu te créé un petit exécutable qui execve() to script. Miracle, ça marche... Le shell n'a rien à voir là dedans. C'est le kernel qui interprète le she-bang.
Marsh Posté le 22-10-2007 à 12:53:36
D'accord c'est l'appel systeme lui même qui regarde la présence du sha-bang...
Marsh Posté le 22-10-2007 à 13:12:25
matafan a écrit : Mieux qu'une source, tu peux faire un essai et réfléchir deux secondes. Tu te créé un script avec un she-bang. Tu te créé un petit exécutable qui execve() to script. Miracle, ça marche... Le shell n'a rien à voir là dedans. C'est le kernel qui interprète le she-bang. |
si tu passes un execve tu n'utilises plus d'interpréteur c'est le shell qui lit le she-bang
Marsh Posté le 22-10-2007 à 13:14:22
le she-bang c'est l'interpréteur du script, non ?. Le shell (qui est aussi un interpréteur) va bien te faire un execve sur ton script non lorsque tu vas lui dire de l'exécuter ?
Marsh Posté le 22-10-2007 à 13:32:16
black_lord a écrit : |
Ben non c'est pas le shell qui lit le she-bang, le shell n'a rien à voir là dedans. Quand tu fais execve tu demande au kernel d'exécuter ton fichier. Le kernel regarde la première ligne, il voit un #! et il fait un exec de ce qui suit, suivit du nom de fichier. Après c'est sûr, si ce qui suit le #! c'est un shell, ça va exécuter un shell... Qui va voir aussi le she-bang, mais pour le shell ça veut rien dire, c'est juste un commentaire.
Marsh Posté le 21-10-2007 à 17:47:13
Bonsoir,
Voilà, je tourne sur debian etch, et j'ai un soucis lorsque je veux installer vmware.
Le fichier d'installation est "vmware-install.pl", dans ma console, je me log en root (avec su), et lorsque je lance la commande "sh vmware-install.pl", je me retrouve avec ceci:
vmware-install.pl: line 8: use: command not found
vmware-install.pl: line 13: use: command not found
vmware-install.pl: line 16: my: command not found
vmware-install.pl: line 18: my: command not found
vmware-install.pl: line 21: use: command not found
vmware-install.pl: line 26: sub: command not found
vmware-install.pl: line 27: syntax error near unexpected token `eq'
vmware-install.pl: line 27: ` if (vmware_product() eq 'tools-for-solaris') {'
J'y connais pas en grand chose, mais d'après ce que j'ai cru comprendre, les commandes "use", "my", "sub" seraient des commandes perl, donc el problème viendrait-il d'un problème d'interprétation à ce niveau ??
J'ai regardé, à priori "perl" est bien installé, je l'ai réinstallé et c'est pareil ...
Mais bon, comme je l'ai dit, je suis pas du tout programmeur, je fais peut être fausse route depuis le début, j'ai besoin de vos lumières
Merci par avance de vos suggestions !!
PS: j'ai testé avec plusieurs versions différentes de vmware et j'ai toujours le même résultat