Примеры выполнения команд (os.execute)
os.execute зависит от Shell; в среде iOS с джейлбрейком это может быть Bash или Zsh.
Версия XXTouch для TrollStore не поддерживает os.execute.
По возможности избегайте использования os.execute.
Перезагрузка устройства
-- os.execute('reboot')
-- Рекомендуется использовать следующий вызов
sys.reboot()
Респринг (перезапуск SpringBoard)
-- os.execute('killall -9 SpringBoard;killall -9 backboardd')
-- Рекомендуется использовать следующий вызов
sys.killall(9, 'SpringBoard', 'backboardd')
Перестроение кэша значков
-- os.execute('su mobile -c uicache')
-- Рекомендуется использовать следующий вызов
clear.caches()
Создание символьной ссылки на журнал скрипта в каталоге скриптов
-- os.execute('ln -s /private/var/mobile/Media/1ferver/log/sys.log /private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt')
-- Рекомендуется использовать следующий вызов
lfs.link('/private/var/mobile/Media/1ferver/log/sys.log', '/private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt', true)
Обёртки для распространённых операций
--[[
Эти обёртки больше не рекомендуются; вместо них используйте встроенные функции модуля file в XXTouch.
--]]
local function sh_escape(path) -- Авторская функция XXTouch; её можно использовать в коммерческих целях без разрешения XXTouch.
path = string.gsub(path, "([ \\()<>'\"`#&*;?~$|])", "\\%1")
return path
end
function fdelete(path) -- Удаление файла или каталога (рекурсивно удаляет вложенные элементы)
assert(type(path)=="string" and path~="", 'fremove 参数异常')
-- os.execute('rm -rf '..sh_escape(path))
-- Рекомендуется использовать следующий вызов
file.remove(path)
end
function frename(from, to) -- Переименование (перемещение) файла или каталога
assert(type(from)=="string" and from~="", 'frename 参数 1 异常')
assert(type(to)=="string" and to~="", 'frename 参数 2 异常')
-- os.execute('mv -f '..sh_escape(from).." "..sh_escape(to))
-- Рекомендуется использовать следующий вызов
file.move(from, to, 'mo')
end
function fcopy(from, to) -- Копирование файла или каталога (рекурсивно копирует вложенные элементы)
assert(type(from)=="string" and from~="", 'fcopy 参数 1 异常')
assert(type(to)=="string" and to~="", 'fcopy 参数 2 异常')
-- os.execute('cp -rf '..sh_escape(from).." "..sh_escape(to))
-- Рекомендуется использовать следующий вызов
file.copy(from, to, 'mo')
end
function mkdir(path) -- Создание каталога (рекурсивно создаёт вложенные каталоги)
assert(type(path)=="string" and path~="", 'mkdir 参数异常')
-- os.execute('mkdir -p '..sh_escape(path))
-- Рекомендуется использовать следующий вызов
file.mkdir_p(path)
end
-- Выше приведены готовые обёртки; скопируйте их в начало скрипта, чтобы использовать.
-- Ниже приведены примеры вызова (копировать их не нужно).
-- Удалить /var/mobile/1.png
fdelete("/var/mobile/1.png")
-- Переименовать /var/mobile/2.png в /var/mobile/1.png
frename("/var/mobile/2.png", "/var/mobile/1.png")
-- Переместить /var/mobile/1.png в /var/mobile/Media/1ferver/res/3.png
frename("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/3.png")
-- Скопировать /var/mobile/1.png в /var/mobile/Media/1ferver/res/4.png
fcopy("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/4.png")
-- Создать каталог /var/mobile/1/2/3/4/
mkdir("/var/mobile/1/2/3/4")