无法通过 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
我的工作目录是 /data/local/tmp
.
我在此处创建并推送了一个名为 get_meminfo.sh
.
它的核心功能是记录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