Shell
Shell 全局对象通过内置的 ios_system 运行时在 Scripting app 内执行 shell 命令。适合临时工具场景 —— 列文件、改文件、处理文本流、用 curl 拉 URL、用 tar 打包、跑 python 等。
可用命令仅限于
ios_system自带的子集,这不是完整的 POSIX shell。只有ios_system内置模块提供的命令可用:大致是基础的文件 / 文本 / 网络工具(ls、cp、mv、rm、cat、echo、grep、sed、awk、cut、sort、uniq、head、tail、wc、find、xargs、tar、gzip、curl、scp、sftp、ssh、python......),加上 shell 内建(cd、pwd、env、export、管道、重定向)。未内置的外部工具 ——git、make、node、npm、brew、gcc等 —— 都不可用;也不能执行脚本随附的任意二进制(iOS 沙盒限制)。
Shell.run 与 Python.run 共享同一条串行队列:其中一个执行时,其他调用排队等待。这是有意设计的 —— ios_system 与内嵌 Python 解释器共享全局状态(env 变量、sys.modules、当前工作目录),不可并发执行。
方法
Shell.run(command, options?): Promise<ShellExecutionResult>
执行一条 shell 命令。命令退出或触发 timeout 时返回。非零退出码以 resolve 形式回传(不会 reject);只有参数缺失会 reject。
