2010-05-31 23 views
26

mi desidera fareinterattive lua: argomenti della riga di comando

lua prog.lua arg1 arg2 

dalla riga di comando

All'interno prog.lua, voglio dire, per esempio

print (arg1, arg2, '\n') 

Lua doesn' Sembra che abbia argv [1] etc ei metodi che ho visto per trattare gli argomenti da linea di comando sembrano essere immaturi e/o ingombranti. Mi sto perdendo qualcosa?

+1

Sono curioso di sapere quali soluzioni "immature/ingombranti" hai visto a un [problema diretto] (http://www.google.com/search?q=lua+command+line+arguments&btnI=1). – Miles

+2

http://lua-users.org/wiki/CommandLineModule sembra ingombrante se paragonato ad un built-in argc, argv; getopt (in C:/Programmi/Lua/5.1/docs/stdlib/getopt.html sulla mia macchina) ha scritto TODO dappertutto e l'esempio pubblicizzato è vuoto. Grazie per il puntatore al manuale per arg. Google non ha fatto per me quello che ha fatto per te, sono stato dappertutto nel tentativo di scoprirlo. È una delle cose dell'essere un n00b (di nuovo) - le cose più semplici non sembrano funzionare :-( –

risposta

42

Stai perdendo il arg vettore, che ha gli elementi che si desidera in arg[1], arg[2], e così via: (! Grazie Miglia)

% lua -i -- /dev/null one two three 
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio 
> print(arg[2]) 
two 
> 

Maggiori informazioni nel Lua manual section on Lua standalone.

+1

Hai perfettamente ragione, io sono! I punti di permanenza nel manuale sono che? Saluto molto bene ATM. Cheers –

+2

http://www.lua.org/manual/5.1/manual.html#6 – Miles

+0

Grazie per la risposta! Ho provato "lua -i - uno due tre" su lua 5.2.4 e ottenuto 'impossibile aprirne uno: nessun file o directory. 'Questo mi fa pensare che'/dev/null' sia richiesto (per '[script [args]]' nel manuale, non '[script] [ args] ') --- sto capendo correttamente? Se non obietti, aggiornerò la risposta per spiegare. Molto apprezzato! – cxw

23

Oltre alla tabella arg, ... contiene gli argomenti (arg [1] e successivi) utilizzati per invocare lo script.

 
% lua -i -- /dev/null one two three 
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio 
> print(...) 
one  two  three 
5

Lua memorizza gli argomenti in una tabella. Questa tabella è la tabella "arg". È possibile accedere agli argomenti passati all'interno utilizzando arg [1], arg [2], ...

arg [0] è il nome del programma lua. arg [1] è il primo argomento passato, arg [2] è il secondo argomento passato e così via ...

2

Se si esegue file.lua nel cmd di FreeSWITCH

freeswitch> luarun prog.lua arg1 

È possibile utilizzare prog .lua:

#print(argv[1]) 

ed eseguire: $lua prog.lua arg1 (eseguito nella cartella di script) È possibile utilizzare prong.lua:

#print(arg[1]) 
Problemi correlati