Pular para o conteúdo principal

Exemplos de execução de comandos (os.execute)

os.execute depende do Shell; em um ambiente iOS com jailbreak, o Shell pode ser Bash ou Zsh.
A versão TrollStore do XXTouch não oferece suporte a os.execute.
Recomenda-se evitar o uso de os.execute sempre que possível.

Reiniciar o dispositivo

-- os.execute('reboot')
-- recomenda-se substituir pela chamada abaixo
sys.reboot()

Fazer respring (reinicialização do SpringBoard) do dispositivo

-- os.execute('killall -9 SpringBoard;killall -9 backboardd')
-- recomenda-se substituir pela chamada abaixo
sys.killall(9, 'SpringBoard', 'backboardd')

Reconstruir o cache de ícones

-- os.execute('su mobile -c uicache')
-- recomenda-se substituir pela chamada abaixo
clear.caches()
-- os.execute('ln -s /private/var/mobile/Media/1ferver/log/sys.log /private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt')
-- recomenda-se substituir pela chamada abaixo
lfs.link('/private/var/mobile/Media/1ferver/log/sys.log', '/private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt', true)

Funções auxiliares para operações comuns

--[[
As funções auxiliares abaixo não são mais recomendadas; prefira as funções integradas do módulo file do XXTouch
--]]

local function sh_escape(path) -- função original do XXTouch, pode ser usada comercialmente sem licença do XXTouch
path = string.gsub(path, "([ \\()<>'\"`#&*;?~$|])", "\\%1")
return path
end

function fdelete(path) -- remove um arquivo ou diretório (recursivamente)
assert(type(path)=="string" and path~="", 'fremove 参数异常')
-- os.execute('rm -rf '..sh_escape(path))
-- recomenda-se substituir pela chamada abaixo
file.remove(path)
end

function frename(from, to) -- renomeia (move) um arquivo ou diretório
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))
-- recomenda-se substituir pela chamada abaixo
file.move(from, to, 'mo')
end

function fcopy(from, to) -- copia um arquivo ou diretório (recursivamente)
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))
-- recomenda-se substituir pela chamada abaixo
file.copy(from, to, 'mo')
end

function mkdir(path) -- cria um diretório (recursivamente)
assert(type(path)=="string" and path~="", 'mkdir 参数异常')
-- os.execute('mkdir -p '..sh_escape(path))
-- recomenda-se substituir pela chamada abaixo
file.mkdir_p(path)
end

-- as funções auxiliares acima podem ser copiadas para o início do script e usadas diretamente.
-- os exemplos de chamada abaixo não precisam ser copiados

-- remove /var/mobile/1.png
fdelete("/var/mobile/1.png")

-- renomeia /var/mobile/2.png como /var/mobile/1.png
frename("/var/mobile/2.png", "/var/mobile/1.png")

-- move /var/mobile/1.png para /var/mobile/Media/1ferver/res/3.png
frename("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/3.png")

-- copia /var/mobile/1.png para /var/mobile/Media/1ferver/res/4.png
fcopy("/var/mobile/1.png", "/var/mobile/Media/1ferver/res/4.png")

-- cria o diretório /var/mobile/1/2/3/4/
mkdir("/var/mobile/1/2/3/4")