我的工作目录是/data/local/tmp
。
我在此处创建并推送了一个名为get_meminfo.sh
的shell脚本文件。
它的核心功能是记录RSS使用情况并保存为日志文件,例如:rss_res >> rss.log
但是现在我发现了一个问题:进入android shell时,我可以运行脚本文件,例如./get_meminfo.sh,并且可以在路径中看到创建的日志文件。
但是,当我尝试从adb运行它时,例如:adb shell /data/local/tmp/get_meminfo.sh
,它将收到错误消息:无法创建文件,只读文件系统!
答案 0 :(得分:0)
您似乎不太了解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