我正在尝试执行以下操作:
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
文件,内容为十六进制:300a
(0\n
)
答案 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
。