Mã mẫu thực thi lệnh (os.execute)
os.execute phụ thuộc vào shell; trong môi trường iOS đã jailbreak, shell có thể là bash hoặc zsh.
Bản dựng XXTouch dành cho TrollStore không thể sử dụng os.execute.
Hãy tránh dùng os.execute khi có thể.
Khởi động lại thiết bị
-- os.execute('reboot')
-- Thay vào đó, hãy dùng lời gọi sau
sys.reboot()
Respring thiết bị
-- os.execute('killall -9 SpringBoard;killall -9 backboardd')
-- Thay vào đó, hãy dùng lời gọi sau
sys.killall(9, 'SpringBoard', 'backboardd')
Tạo lại bộ nhớ đệm biểu tượng
-- os.execute('su mobile -c uicache')
-- Thay vào đó, hãy dùng lời gọi sau
clear.caches()
Tạo liên kết tượng trưng đến nhật ký tập lệnh trong thư mục tập lệnh
-- os.execute('ln -s /private/var/mobile/Media/1ferver/log/sys.log /private/var/mobile/Media/1ferver/lua/scripts/script-log.txt')
-- Thay vào đó, hãy dùng lời gọi sau
lfs.link('/private/var/mobile/Media/1ferver/log/sys.log', '/private/var/mobile/Media/1ferver/lua/scripts/script-log.txt', true)
Các hàm tiện ích thường dùng
--[[
Không còn khuyến nghị các trình bao sau.
Hãy dùng các hàm trong mô-đun file tích hợp của XXTouch.
--]]
local function sh_escape(path) -- Hàm gốc của XXTouch; có thể dùng cho mục đích thương mại mà không cần XXTouch cho phép
path = string.gsub(path, "([ \\()<>\'\"`#&*;?~$|])", "\\%1")
return path
end
function fdelete(path) -- Xóa tệp hoặc thư mục (xóa đệ quy các mục con)
assert(type(path)=="string" and path~="", 'fremove argument error')
-- os.execute('rm -rf '..sh_escape(path))
-- Thay vào đó, hãy dùng lời gọi sau
file.remove(path)
end
function frename(from, to) -- Đổi tên (di chuyển) tệp hoặc thư mục
assert(type(from)=="string" and from~="", 'frename arg #1 error')
assert(type(to)=="string" and to~="", 'frename arg #2 error')
-- os.execute('mv -f '..sh_escape(from).." "..sh_escape(to))
-- Thay vào đó, hãy dùng lời gọi sau
file.move(from, to, 'mo')
end
function fcopy(from, to) -- Sao chép tệp hoặc thư mục (sao chép đệ quy các mục con)
assert(type(from)=="string" and from~="", 'fcopy arg #1 error')
assert(type(to)=="string" and to~="", 'fcopy arg #2 error')
-- os.execute('cp -rf '..sh_escape(from).." "..sh_escape(to))
-- Thay vào đó, hãy dùng lời gọi sau
file.copy(from, to, 'mo')
end
function mkdir(path) -- Tạo thư mục (tạo đệ quy các thư mục cha)
assert(type(path)=="string" and path~="", 'mkdir argument error')
-- os.execute('mkdir -p '..sh_escape(path))
-- Thay vào đó, hãy dùng lời gọi sau
file.mkdir_p(path)
end
-- Sao chép các hàm trình bao ở trên vào tập lệnh trước khi sử dụng.
-- Phần sau minh họa cách gọi chúng (không cần sao chép).
-- Xóa /var/mobile/1.png
fdelete("/var/mobile/1.png")
-- Đổi tên /var/mobile/2.png thành /var/mobile/1.png
frename("/var/mobile/2.png", "/var/mobile/1.png")
-- Di chuyển /var/mobile/1.png đến /var/mobile/Media/1ferver/res/3.png
frename("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/3.png")
-- Sao chép /var/mobile/1.png đến /var/mobile/Media/1ferver/res/4.png
fcopy("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/4.png")
-- Tạo thư mục /var/mobile/1/2/3/4
mkdir("/var/mobile/1/2/3/4")