如何通过adb读取安卓设备的环境变量而非当前本地系统的
问题原因
执行adb shell $PWD时,本地Shell会先解析并展开$PWD变量为本地当前工作目录,再把展开后的内容传给adb shell执行,因此返回的永远是本地路径,而非安卓设备端的路径。
正确获取设备端$PWD的方案
- 方案1:用单引号包裹要执行的命令,阻止本地Shell解析变量
执行命令:adb shell 'echo $PWD'
单引号内的所有内容不会被本地Shell做变量展开,会原样传给安卓设备的Shell执行,即可正确获取设备端当前工作目录。 - 方案2:转义
$符号,避免本地将其识别为变量前缀
执行命令:adb shell echo \$PWD
转义后的\$在本地Shell解析时会被处理为普通$字符,传到设备端后才会触发变量展开。 - 补充用法:如果需要切换目录后再查看路径,可以将多条命令放在单引号内执行,示例:
adb shell 'cd /sdcard/Download && echo $PWD'
执行后会直接返回设备/sdcard/Download路径。
内容的提问来源于stack exchange,提问作者nj2237
相关产品推荐
相关产品推荐

