Je souhaite faire
lua prog.lua arg1 arg2
depuis la ligne de commande
Dans prog.lua, je veux dire, par exemple
print (arg1, arg2, '\n')
Lua ne semble pas avoir argv [1] etc. et les méthodes que j'ai vues pour traiter les arguments de ligne de commande semblent immatures et/ou lourdes. Suis-je en train de manquer quelque chose?
Il vous manque le vecteur arg
, qui contient les éléments que vous souhaitez dans arg[1]
, arg[2]
, etc:
% lua -i -- /dev/null one two three
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(arg[2])
two
>
Plus d'informations dans la section du manuel Lua sur Lua autonome (merci Miles!).
En plus de la table arg
, ...
contient les arguments (arg [1] et plus) utilisés pour appeler le script.
% lua -i -/dev/null un deux trois Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio > print (. ..) un deux trois
Lua stocke les arguments dans une table. Cette table est la table "arg". Vous pouvez accéder aux arguments passés à l'intérieur en utilisant arg [1], arg [2], ...
arg [0] est le nom du programme lua. arg [1] est le premier argument passé, arg [2] est le deuxième argument passé et ainsi de suite ...
Si vous exécutez file.lua en cmd de freeswitch
freeswitch> luarun prog.lua arg1
Vous pouvez utiliser prog.lua:
#print(argv[1])
Et courir: $lua prog.lua arg1
(exécuté dans le dossier de script) Vous pouvez utiliser prong.lua:
#print(arg[1])