Lua-In-Xcodehtml
brew install lua
若是已經安裝了5.3.0,在採用ios
brew install lua
的時候,就會報錯:git
Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/lua Target /usr/local/bin/lua already exists. You may want to remove it: rm '/usr/local/bin/lua' To force the link and overwrite all conflicting files: brew link --overwrite lua To list all files that would be deleted: brew link --overwrite --dry-run lua
devzkndeMacBook-Pro:luatest devzkn$ brew link --overwrite --dry-run lua Would remove: /usr/local/bin/lua /usr/local/bin/luac /usr/local/include/lauxlib.h /usr/local/include/lua.h /usr/local/include/lua.hpp /usr/local/include/luaconf.h /usr/local/include/lualib.h devzkndeMacBook-Pro:luatest devzkn$ brew link --overwrite lua Linking /usr/local/Cellar/lua/5.2.4_5... 71 symlinks created devzkndeMacBook-Pro:luatest devzkn$ lua -v Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio
devzkndeMacBook-Pro:luatest devzkn$ brew install lua Updating Homebrew... Warning: lua 5.2.4_5 is already installed
devzkndeMacBook-Pro:ios-Reverse_Engineering devzkn$ curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 271k 100 271k 0 0 73274 0 0:00:03 0:00:03 --:--:-- 73324 devzkndeMacBook-Pro:ios-Reverse_Engineering devzkn$ ls -lrt total 99520 -rw-r--r-- 1 devzkn staff 278045 Jan 6 2015 lua-5.3.0.tar.gz
devzkndeMacBook-Pro:ios-Reverse_Engineering devzkn$ tar zxf lua-5.3.0.tar.gz devzkndeMacBook-Pro:ios-Reverse_Engineering devzkn$ ls -lrt total 99520 drwxr-xr-x 6 devzkn staff 192 Jan 6 2015 lua-5.3.0
devzkndeMacBook-Pro:lua-5.3.0 devzkn$ make macosx test cd src && /Applications/Xcode.app/Contents/Developer/usr/bin/make macosx /Applications/Xcode.app/Contents/Developer/usr/bin/make all SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lapi.o lapi.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lcode.o lcode.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lctype.o lctype.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ldebug.o ldebug.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ldo.o ldo.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ldump.o ldump.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lfunc.o lfunc.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lgc.o lgc.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o llex.o llex.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lmem.o lmem.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lobject.o lobject.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lopcodes.o lopcodes.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lparser.o lparser.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lstate.o lstate.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lstring.o lstring.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ltable.o ltable.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ltm.o ltm.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lundump.o lundump.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lvm.o lvm.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lzio.o lzio.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lauxlib.o lauxlib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lbaselib.o lbaselib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lbitlib.o lbitlib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lcorolib.o lcorolib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ldblib.o ldblib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o liolib.o liolib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lmathlib.o lmathlib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o loslib.o loslib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lstrlib.o lstrlib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o ltablib.o ltablib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lutf8lib.o lutf8lib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o loadlib.o loadlib.c cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o linit.o linit.c ar rcu liblua.a lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o loadlib.o linit.o ranlib liblua.a cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o lua.o lua.c cc -o lua lua.o liblua.a -lm -lreadline cc -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_MACOSX -c -o luac.o luac.c cc -o luac luac.o liblua.a -lm -lreadline src/lua -v Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
devzkndeMacBook-Pro:lua-5.3.0 devzkn$ sudo make install Password: cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.3 /usr/local/lib/lua/5.3 cd src && install -p -m 0755 lua luac /usr/local/bin cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include cd src && install -p -m 0644 liblua.a /usr/local/lib cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1
devzkndeMacBook-Pro:lua-5.3.0 devzkn$ lua -v Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
devzkndeMacBook-Pro:luatest devzkn$ touch HelloWorld.lua devzkndeMacBook-Pro:luatest devzkn$ open devzkndeMacBook-Pro:luatest devzkn$ vi HelloWorld.lua devzkndeMacBook-Pro:luatest devzkn$ cat HelloWorld.lua print("Hello World!"); devzkndeMacBook-Pro:luatest devzkn$ lua HelloWorld.lua Hello World! devzkndeMacBook-Pro:luatest devzkn$
下載https://github.com/breinhart/...
確認 Xcode 處於關閉狀態github
devzkndeMacBook-Pro:Lua-In-Xcode-master devzkn$ sudo xcode-select -s /Applications/Xcode.app
輸入密碼數據庫
devzkndeMacBook-Pro:luatest devzkn$ lua Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio > print("Hello World!") Hello World!
devzkndeMacBook-Pro:luatest devzkn$ lua HelloWorld.lua Hello World!
在開頭添加:#!/usr/local/bin/lua
指定了 Lua 的解釋器爲 /usr/local/bin directory。加上 # 號標記解釋器會忽略它。接下來咱們爲腳本添加可執行權限
相似與#!/bin/bash
用法。macos
devzkndeMacBook-Pro:luatest devzkn$ cat * #!/usr/local/bin/lua print("Hello World!");
devzkndeMacBook-Pro:luatest devzkn$ chmod +x * devzkndeMacBook-Pro:luatest devzkn$ ls -lrt total 8 -rwxr-xr-x 1 devzkn staff 45 Dec 4 18:19 HelloWorld.lua
devzkndeMacBook-Pro:luatest devzkn$ HelloWorld.lua Hello World!
--[=[註釋內容]=]
--[[ 多行註釋 多行註釋 --]]
打開文件操做語句以下:編程
file = io.open (filename [, mode])
r 以只讀方式打開文件,該文件必須存在。 w 打開只寫文件,若文件存在則文件長度清爲0,即該文件內容會消失。若文件不存在則創建該文件。 a 以附加的方式打開只寫文件。若文件不存在,則會創建該文件,若是文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留) r+ 以可讀寫方式打開文件,該文件必須存在。 w+ 打開可讀寫文件,若文件存在則文件長度清爲零,即該文件內容會消失。若文件不存在則創建該文件。 a+ 與a相似,但此文件可讀可寫 b 二進制模式,若是文件是二進制文件,能夠加上b + 號表示對文件既能夠讀也能夠寫
file = io.open("/var/root/lualog.text", "a") -- 設置默認輸出文件爲 test.lua io.output(file) io.write("-- test.lua 文件末尾註釋") file:close()
local res, code, response_headers = http.request{ url = http_url, method = "POST", headers = { ["Content-Type"] = content_type; ["Content-Length"] = #http_body; }, source = ltn12.source.string(http_body), sink = ltn12.sink.table(response_body), } decode3 = {}; --notifyMessage("res is:"..res); sysLog("《httpPost end 》"); if(not(res == nil)) then sysLog("res:"..res); else --code: timeout res= ""; sysLog("code: "..code); --輸出返回的信息到特定文件 -- 以附加的方式打開只寫文件 file = io.open("/var/root/lualog.text", "a") -- 在文件最後一行添加 Lua 註釋 -- 設置默認輸出文件爲 test.lua io.output(file) if type(response_body) == "table" then file:write("--res:"..res.." code:"..code.." response_body:"..table.concat(response_body).."\n") else file:write("--res:"..res.." code:"..code.." response_body[1]:"..type(response_body).."\n") end -- 關閉打開的文件 file:close() return res,code,decode3 end
iPhone:~ root# cat lualog.text --res: code:timeout response_body: --res: code:closed response_body: --res: code:timeout response_body: -rw-r--r-- 1 root wheel 104 Dec 6 13:30 lualog.text /var/root
file:write("--time:"..getTime.."res:"..res.." code:"..code.." response_body:"..table.concat(response_body).."\n")
--time:Wed Dec 6 14:16:30 2017res: code:timeout response_body:
local getTime = os.date("%c");
%a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., September) %c date and time (e.g., 09/16/98 23:48:10) %d day of the month (16) [01-31] %H hour, using a 24-hour clock (23) [00-23] %I hour, using a 12-hour clock (11) [01-12] %M minute (48) [00-59] %m month (09) [01-12] %p either 「am」 or 「pm」 (pm) %S second (10) [00-61] %w weekday (3) [0-6 = Sunday-Saturday] %x date (e.g., 09/16/98) %X time (e.g., 23:48:10) %Y full year (1998) %y two-digit year (98) [00-99] %% the character ‘%’
local date=os.date(「%Y-%m-%d %H:%M:%S」); os.time()--獲取當前秒