无法通过 adb 创建日志文件 shell

Can't create log file through adb shell

我的工作目录是 /data/local/tmp.

我在此处创建并推送了一个名为 get_meminfo.sh.

的 shell 脚本文件

它的核心功能是记录RSS使用情况并保存为日志文件,像这样:rss_res >> rss.log

但是现在我发现了一个问题:我可以在输入androidshell的时候运行脚本文件,比如./get_meminfo.sh,可以看到在路径中创建的日志文件。

然而,当我尝试从 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