android “/system/bin/sh:语法错误:'('在ADB中指定文件时出现意外

vom3gejh  于 2023-08-01  发布在  Android
关注(0)|答案(3)|浏览(267)

我最近一直在和adb打交道,主要是push命令。当手机不想像闪存驱动器那样挂载时,它是一个救生圈。最近,我一直在加载音频文件到手机上,发现了一个整洁的一行程序,可以使手机从锁定屏幕播放音频。我试过了,它在/storage/emulated/legacy/Downloads/中的一个名为“Wolves.mp3”的文件上完美地工作,但是当我尝试一个名为Coyote (group).mp3的文件时,它给出了错误:

/system/bin/sh: syntax error: '(' unexpected

字符串
我尝试了许多不同的解决方案,比如从file:///storage/...改为/storage/...,根据this site转义符号,这只会让我更加困惑。我甚至试着使用common \来转义符号/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

sgtfey8w

sgtfey8w1#

嘿,我想通了!!!
知道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。但它工作!

czfnxgou

czfnxgou2#

工作溶液:
1.直接使用adb命令时解决方案是:
第一个月
说明:这里使用的adb来自android shell,shell对()圆括号有特殊的含义,因此会发生上述错误。因此,转义括号将解决它。
1.在adb命令中使用xargs时:
echo "file:///storage/emulated/legacy/Downloads/coyote (group).mp3" | xargs -n1 -I {} adb shell am start -a android.intent.action.VIEW -d "{}" -t audio/mp3
但在这里echo "file:///storage/emulated/legacy/Downloads/coyote \(group\).mp3" | xargs -n1 -I {} adb shell am start -a android.intent.action.VIEW -d "{}" -t audio/mp3 Error: /system/bin/sh: Unexpected '('将不起作用。
因为一次圆括号是用反斜杠转义的,这解决了android shell的问题,但是反斜杠作为xargs计算机shell的特殊字符,因此它也需要转义。因此,解决方案将是:echo "file:///storage/emulated/legacy/Downloads/coyote \\(group\\).mp3" | xargs -n1 -I {} adb shell am start -a android.intent.action.VIEW -d "{}" -t audio/mp3

f0brbegy

f0brbegy3#

什么身体我不不我只看到我的帐户给我

**Maa ki chutt

布特矿脉

  1. Gaand

**

相关问题