首页 > 解决方案 > “/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

标签: androidadb

解决方案


嘿,我想通了!!!

知道 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。它虽然有效!


推荐阅读