很多时候deb安装并不是把文件复制到iPhone里就可以了,还需要执行一些命令,比如设置权限,备份文件,加载启动进程等等。那么这时候就需要一些脚本来实现这些操作。

标准的deb脚本有4个,preinst,postinst,prerm和postrm,很明显PRE就是之前POST是之后,inst代表安装(install)RM代表remove

preinst:在复制文件前执行的脚本

postinst:在复制文件之后执行的脚本

prerm:在卸载前执行的脚本

postrm:在卸载之后执行的脚本

总体来说,Unix的脚本(Shell Script)有其固定的格式。文件顶头为:#!/bin/bash

表示调用bash这个shell,之后就是运行的命令了。嘛,懂编程的都知道,#这个符号代表注解,#之后一行的就不被执行

最常用的两个命令自然是设置属性/权限/用户/组:chmod -R 属性 文件名

实例:chmod -R 0755 /Applications/Cydia.app

比如要将文件A设为root用户,wheel组,可以使用命令:chown root:wheel A

要将 /var/mobile/Documents 下所有文件夹和文件设为mobile用户和mobile组,可以使用命令:chown -R mobile:mobile /var/mobile/Documents

而如何删除文件?rm 是广义的删除命令,可以用于删除文件和文件夹。rm常用参数有 -f 和 -r

参数 -f :强制删除,即使文件不存在。因文件或文件夹不存在而报错导致脚本停止执行,所以-f参数是必要的
参数 -r :要以rm命令删除文件夹,必须加上 -r 参数。该参数会删除目录下的全部子目录和文件,包括链接到的文件/文件夹。因此 -r 参数要慎用。比如有一个链接是指向根目录的,在有 -r参数的情况下,删除这个链接会导致整个文件系统全部被删除。

而rmdir仅能用于删除空文件夹,也就是说,不能用于删除文件和非空的文件夹。

其实一看,就知道与ubuntu等指令其实是非常相似的…在此就不多说其他指令

而某些时候要获取固件版本,就要使用命令:sw_vers -productVersion

Cydia中安装完之后重新启动SpringBoard:

declare -a cydia
cydia=($CYDIA)

if [[ ${CYDIA+@} ]]; then
    eval “echo ‘finish:restart’ >&${cydia[0]}”
fi

Cydia中安装完之后重新启动设备:

declare -a cydia
cydia=($CYDIA)

if [[ ${CYDIA+@} ]]; then
eval “echo ‘finish:reboot’ >&${cydia[0]}”
fi

更多关于Shell Script可搜索谷歌,应该马上就会显现一堆了