android - “/system/bin/sh: 语法错误:'(' 意外”在 ADB 中指定文件时
问题描述
我最近一直在搞乱 adb,主要是 push 命令。当手机不想像闪存驱动器一样安装时,它可以挽救生命。最近我一直在将音频文件加载到手机上,并发现了一个简洁的单线,可以让手机从锁屏播放音频。试了一下,它在一个名为“Wolves.mp3”的文件上完美运行/storage/emulated/legacy/Downloads/
,但是当我尝试一个名为它的文件时Coyote (group).mp3
,它给出了错误消息:
/system/bin/sh: syntax error: '(' unexpected
我尝试了许多不同的解决方案,例如从更改file:///storage/...
为 just /storage/...
,根据此站点转义符号,这只会让我更加困惑。我什至尝试使用常见的 \ 来转义符号/storage/emulated/legacy/Downloads/Coyote\ \(group\).mp3
,但即使这样也给出了完全相同的错误。
编辑
我一直在运行的命令如下所示:
[jaz@Jaz-Jackson ~]$ adb shell am start -a android.intent.action.VIEW -d file:///storage/emulated/legacy/Downloads/coyote (group).mp3 -t audio/mp3
解决方案
嘿,我想通了!!!
知道 file:// 协议是用于超链接结构的,我记得你通常的 url 会用字符串替换空格符号%20
,所以我把这首歌推到我的另一部手机上,用 %20 替换空格,然后就走了!现在我只需要将 ()[]{}-+!@#$%^&* 等所有特殊符号替换为它们的超链接等价物,这应该可以解决我的所有问题!
[jaz@Jaz-Jackson]$ adb shell am start -a android.intent.action.VIEW -d "file:///storage/self/primary/Music/Ra%20Ra%20RasPutin.mp3" -t audio/mp3
Starting: Intent { act=android.intent.action.VIEW dat=file:///storage/self/primary/Music/Ra Ra RasPutin.mp3 typ=audio/mp3 }
是的。我能在我的音乐中找到的唯一一首没有任何特殊符号的歌曲是 Ra Ra RasPutin。它虽然有效!
推荐阅读
- ruby - 在 Chrome Webdriver 中禁用/启用弹出窗口阻止程序
- python - 模拟一系列相互依赖的调用
- javascript - 在ui路由中传递动态参数值
- svg - 如何为特定点旋转()?
- download - 使用 Rselenium 下载多个 PDF
- android - 如何检查有多少用户已更新到应用程序的新版本
- angular - 我的 github 仓库不接受一些 js 文件?
- angular - 使用 Angular Material 将带有嵌套子级的 Json 转换为树结构
- java - 最佳实践是什么:使用原型 bean 而不是 new () 运算符
- c# - 为什么我不能使用部分根命名空间?