Saltar al contenido principal

Ejemplos de ejecución de comandos (os.execute)

os.execute depende de Shell; el Shell del entorno iOS con jailbreak puede ser Bash o Zsh.
La versión Troll de XXTouch no admite os.execute.
Se recomienda evitar os.execute en la medida de lo posible.

Reiniciar el dispositivo

-- os.execute('reboot')
-- Se recomienda sustituirlo por la siguiente llamada
sys.reboot()

respring (reinicio de SpringBoard)

-- os.execute('killall -9 SpringBoard;killall -9 backboardd')
-- Se recomienda sustituirlo por la siguiente llamada
sys.killall(9, 'SpringBoard', 'backboardd')

Reconstruir la caché de iconos

-- os.execute('su mobile -c uicache')
-- Se recomienda sustituirlo por la siguiente llamada
clear.caches()

Crear un enlace simbólico del registro del script en el directorio del script

-- os.execute('ln -s /private/var/mobile/Media/1ferver/log/sys.log /private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt')
-- Se recomienda sustituirlo por la siguiente llamada
lfs.link('/private/var/mobile/Media/1ferver/log/sys.log', '/private/var/mobile/Media/1ferver/lua/scripts/脚本日志.txt', true)

Envoltorios de operaciones habituales

--[[
Ya no se recomienda usar los siguientes envoltorios; se recomienda sustituirlos por las funciones integradas del módulo file de XXTouch
--]]

local function sh_escape(path) -- Función original de XXTouch; se puede usar con fines comerciales sin permiso de XXTouch
path = string.gsub(path, "([ \\()<>'\"`#&*;?~$|])", "\\%1")
return path
end

function fdelete(path) -- Elimina un archivo o directorio (incluidos sus elementos de forma recursiva)
assert(type(path)=="string" and path~="", 'fremove 参数异常')
-- os.execute('rm -rf '..sh_escape(path))
-- Se recomienda sustituirlo por la siguiente llamada
file.remove(path)
end

function frename(from, to) -- Cambia el nombre (mueve) de un archivo o directorio
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))
-- Se recomienda sustituirlo por la siguiente llamada
file.move(from, to, 'mo')
end

function fcopy(from, to) -- Copia un archivo o directorio (incluidos sus elementos de forma recursiva)
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))
-- Se recomienda sustituirlo por la siguiente llamada
file.copy(from, to, 'mo')
end

function mkdir(path) -- Crea un directorio (incluidos sus subdirectorios de forma recursiva)
assert(type(path)=="string" and path~="", 'mkdir 参数异常')
-- os.execute('mkdir -p '..sh_escape(path))
-- Se recomienda sustituirlo por la siguiente llamada
file.mkdir_p(path)
end

-- Los siguientes son los envoltorios preparados; basta con copiarlos al principio del script.
-- Las líneas siguientes son ejemplos de llamada y no es necesario copiarlas

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

-- Cambia el nombre de /var/mobile/2.png a /var/mobile/1.png
frename("/var/mobile/2.png", "/var/mobile/1.png")

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

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

-- Crea el directorio /var/mobile/1/2/3/4
mkdir("/var/mobile/1/2/3/4")