我的工作目录是/data/local/tmp
。
我在这里创建并推送了一个名为 get_meminfo.sh
的 shell 脚本文件。
它的核心功能是记录RSS使用情况并保存为日志文件,像这样:rss_res >> rss.log
但是现在我发现了一个问题:进入android shell可以运行脚本文件,比如./get_meminfo.sh,并且可以看到路径下创建的log文件。
然而,当我尝试从 adb 运行它时,如:adb shell/data/local/tmp/get_meminfo.sh
,它会得到一个错误:无法创建文件,只读文件系统!
最佳答案
看来你不太明白current working dirtectory的概念.
rss_res >> rss.log
命令在当前工作目录中创建 rss.log
。在以下命令序列的情况下是 /data/local/tmp
:
adb shell
cd /data/local/tmp
./get_meminfo.sh
因此 rss.log
被创建在 /data/local/tmp
中,这是世界可写的。
但在 adb shell/data/local/tmp/get_meminfo.sh
的情况下,cwd 是 /
root 文件夹。这是不可写的,命令失败。
最简单的缓解方法是在脚本中使用日志文件的绝对路径,如下所示 rss_res >>/data/local/tmp/rss.log
关于android - 无法通过 adb shell 创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444858/