【问题标题】:Objective-C system("echo ... > ...") not writing to fileObjective-C 系统(“echo ... > ...”)不写入文件
【发布时间】:2018-06-15 23:33:25
【问题描述】:

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

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

但是,当SSH-ing 进入我的 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-ing 进入我的 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 文件,其内容为十六进制:300a (0\n)

【问题讨论】:

    标签: ios objective-c bash echo jailbreak


    【解决方案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

    【讨论】:

    • 对不起,我太懒了,忘记在帖子中添加它们。虽然它们在实际脚本中 :) 很好的观察,但我会对此表示赞同 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2020-02-17
    • 2010-10-15
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多