メインコンテンツまでスキップ

コマンド実行のサンプルコード (os.execute)

os.execute は Shell に依存します。iOS のジェイルブレイク環境では、Shell が Bash または Zsh の場合があります。
TrollStore 版 XXTouch は os.execute をサポートしていません。
できる限り os.execute の使用は避けてください。

デバイスを再起動

-- os.execute('reboot')
-- 代わりに次の呼び出しを使用してください
sys.reboot()

デバイスをリスプリング

-- 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)

よく使う操作のラッパー

--[[
次のラッパーは現在非推奨です。XXTouch 組み込みの file モジュール関数を使用してください
--]]

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")