在命令列執行lua指令碼的引數的格式是這樣的:
lua [options] [script [args]]
% lua -e
"print(math.sin(12))" --> -0.53657291800043
-i是在執行指令碼後進入互動模式。-l則為在執行指令碼前載入lib庫:
% lua -i
-llib
-e"x = 10"
在互動模式,你可以使用=號來列印:
> = math.sin(3) --> 0.14112000805987
> a = 30
> = a
--> 30
lua_init_5_2(如果沒有就去找lua_init)是乙個環境變數,它表示@filename。直譯器會先執行該filename。如果不是以@開頭,則會被視為lua**來執行。
顯示引數:
% lua -e
"sin=math.sin" script a b
直譯器會自動收集命令列的引數,你可以通過arg陣列來引用它。
arg[-3] = 「lua」arg[-2] = 「-e」
arg[-1] = 「sin=math.sin」
arg[0] = 「script」
arg[1] = 「a」
arg[2] = 「b」
Lua 簡單Lua直譯器原始碼分析
include include include lua.h include lauxlib.h include lualib.h int main void lua close l return 0 lua.h定義了lua提供的基礎函式,包括建立lua環境 呼叫lua函式,它的定義是以lua 開頭的...
redis指令碼使用Lua直譯器執行
redis在2.6之前,指令碼使用lua直譯器來執行指令碼,2.6之後內嵌了lua環境,執行指令碼命令使用eval.evla命令語法 eval script numkeys key key arg arg eval return 2 key1 key2 first second 1 key1 2 k...
編譯自定義pypy直譯器,獨立執行pyc
眾所周知,pypy執行效率要高出cpython 5 10倍,特別在網路併發方面,融合了stackless,最新基於python2.7的2.3版本比較穩定,基本上可以用於生產環境。不過pypy預設必須攜帶py檔案執行,是否可以只部署pyc以便隱藏原始碼呢。這個官方文件已經有提到,具體的可以自己閱讀 m...