Objective-C系统(" echo ...> ...")不写入文件

时间:2018-01-06 08:50:04

标签: ios objective-c bash echo jailbreak

我正在尝试执行以下操作:

system("if [[ ${?} == 0 ]]; then echo '0' > /var/mobile/CCC/STATUS.txt; else echo '1' >> /var/mobile/CCC/STATUS.txt; fi");

然而,在SSH进入我的iPhone后,没有/var/mobile/CCC/STATUS.txt个文件。

关于这一点的奇怪之处在于我有另一个system(),它还使用echo将信息插入文件中:

system("(for i in $(echo \"10.0.0.\"{1..255}); do (</dev/tcp/${i}/8008) &> /dev/null && if [[ ${?} == 0 ]]; then echo \"${i}\" >> /var/mobile/CCC/HOSTS.txt; fi & done)");

哪个工作正常!!

我尝试过放置

system("if [[ ${?} == 0 ]]; then echo '0' > /var/mobile/CCC/STATUS.txt; else echo '1' >> /var/mobile/CCC/STATUS.txt; fi");

之前和之后的

system("(for i in $(echo \"10.0.0.\"{1..255}); do (</dev/tcp/${i}/8008) &> /dev/null && if [[ ${?} == 0 ]]; then echo \"${i}\" >> /var/mobile/CCC/HOSTS.txt; fi & done)");

行,但有/var/mobile/CCC/HOSTS.txt个文件,但没有/var/mobile/CCC/STATUS.txt个文件。

为什么会这样?

编辑:

这些代码在我的

-(void) viewDidLoad

方法,所以在打开我的应用程序时,它们会自动执行。

编辑2:

SSH进入我的iPhone后,运行此命令:

echo commandSuccessfull && if [[ ${?} == 0 ]]; then echo '0' > /var/mobile/CCC/STATUS.txt; else echo '0' > /var/mobile/CCC/STATUS.txt; fi

是否有效,并生成/var/mobile/CCC/STATUS.txt文件,内容为十六进制:300a0\n

1 个答案:

答案 0 :(得分:1)

我建议更换

if [[ ${?} == 0]]; then echo '0' > /var/mobile/CCC/STATUS.txt; else echo '1' >> /var/mobile/CCC/STATUS.txt"

if [[ ${?} == 0 ]]; then echo '0' > /var/mobile/CCC/STATUS.txt; else echo '1' >> /var/mobile/CCC/STATUS.txt"; fi

我在]]之前添加了必要的空格,并添加了遗失; fi