Objet :Invoquer l'interpréteur Lua interne

 

Format :LUA [options] [script [args]]

 

-e _stat_exécute une chaîne de caractères stat ;
-l _mod_"nécessite" mod ;
-ientre en mode interactif après l'exécution du script ;
-v imprime des informations sur la version ;
-- arrête la gestion des options ;
- exécute stdin en tant que fichier et ne gère plus les options.

 

Utilisation :

 

La version interne de Lua est la version 5.4.4.

 

Après avoir géré ses options, lua exécute le script donné, en lui passant les args donnés en tant qu'arguments de type 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 - dans le cas contraire.

 

Avant d'exécuter un argument, l'interpréteur vérifie la présence d'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, à l'exception de -i. Par exemple, une invocation comme

 

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

 

mettra d'abord a à 1, puis imprimera la valeur de a, et enfin exécutera le fichier script.lua sans arguments.

 

Avant de lancer l'exécution du script, lua rassemble 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 aux indices négatifs. Par exemple, dans l'appel

 

lua -la b.lua t1 t2

 

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

 

arg = {

[-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éteur attend qu'elle soit complétée en émettant une autre invite.

 

Si la variable globale _PROMPT contient une chaîne de caractères, 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 des instructions incomplètes). Par conséquent, les deux invites peuvent être modifiées directement sur la ligne de commande. Par exemple, il est possible de modifier les deux invites directement sur la ligne de commande,

 

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

 

(la paire de guillemets extérieure est pour l'interpréteur de commandes, la paire intérieure est pour Lua), ou dans n'importe quel programme Lua en l'assignant à _PROMPT. Notez l'utilisation de -i pour entrer en mode interactif ; sinon, le programme se terminerait silencieusement juste après l'affectation à _PROMPT.