Objectif :Invoquer l'interpréteur Lua interne

 

Format:MOON [Options] [scénario [args]]

 

-e _stat_exécute la chaîne stat ;
-l _mod_mod "nécessite" ;
-ipasse en mode interactif après avoir exécuté le script ;
-v imprime les informations de version ;
-- arrête la gestion des options ;
- exécute stdin en tant que fichier et arrête la gestion des options.

 

Usage:

 

Le Lua interne est la version 5.4.4.

 

Après avoir géré ses options, lua exécute le script donné, en lui transmettant les arguments donnés sous forme d'arguments de chaîne. Lorsqu'il est appelé sans arguments, lua se comporte comme lua -v -i lorsque l'entrée standard (stdin) est la console, et comme lua - sinon.

 

Avant d'exécuter un argument, l'interpréteur recherche une variable d'environnement LUA_INIT. Si son format est @_filename_, alors lua exécute le fichier. Sinon, Lua exécute la chaîne elle-même.

 

Toutes les options sont traitées dans l'ordre, sauf -i. Par exemple, une invocation comme

 

lua -e "a=1" -e print(a) script.lua

 

va d'abord définir a à 1, puis imprimez la valeur de a, et enfin exécutez le fichier script.lua sans argument.

 

Avant de commencer à exécuter le script, Lua collecte tous les arguments de la ligne de commande dans une table globale appelée arg. Le nom du script est stocké à l'index 0, le premier argument après le nom du script va à l'index 1, et ainsi de suite. Tous les arguments précédant le nom du script (c'est-à-dire le nom de l'interpréteur plus les options) vont vers des indices négatifs. Par exemple, lors de l'appel

 

lua -la b.lua t1 t2

 

l'interpréteur exécute d'abord le fichier a.lua, puis crée une table

 

argument = {

[-2] = "lua",

[-1] = "-la",

[0] = "b.lua",

[1] = "t1", [2] = "t2" }

 

et exécute enfin le fichier b.lua. Le script est appelé avec arg[1], arg[2], ... comme arguments ; il peut également accéder à ces arguments avec l'expression vararg '=...='.

 

En mode interactif, si vous écrivez une instruction incomplète, l'interprète attend qu'elle soit terminée en émettant une invite différente.

 

Si la variable globale _PROMPT contient une chaîne, sa valeur est utilisée comme invite. De même, si la variable globale _PROMPT2 contient une chaîne, sa valeur est utilisée comme invite secondaire (émise lors d'instructions incomplètes). Par conséquent, les deux invites peuvent être modifiées directement sur la ligne de commande. Par exemple,

 

lua -e"_PROMPT='moninvite> '" -i

 

(la paire externe de guillemets est pour le shell, la paire interne est pour Lua), ou dans n'importe quel programme Lua en l'attribuant à _PROMPT. Notez l'utilisation de -i pour passer en mode interactif ; sinon, le programme se terminerait silencieusement juste après l'affectation à _PROMPT.