【发布时间】:2013-12-13 11:09:45
【问题描述】:
我有一个关于亚行的问题。
对于这个问题的标题,我很抱歉,因为我真的不知道如何给这个问题起一个好的标题。
目前我正在使用许多 android 设备,我注意到在某些设备上会出现以下问题。
假设我想运行位于手机 /data/local/tmp/ 文件夹中的 shell 脚本 (my_script.sh)。
如果我这样做:
adb shell 'sh /data/local/tmp/my_script.sh &'
电话没有任何反应。
如果我只是进入 adb shell(通过在终端上输入 adb shell)并且当我得到这个提示时:
shell@android:/ $
然后我输入以下内容:
sh /data/local/tmp/my_script.sh &
一切正常。
这种情况只发生在我拥有的少数设备上。所以我无法弄清楚我到底做错了什么。
这是另一条可能对某人有所帮助的信息。如果我最后不使用“&”(这意味着我不在后台进程中运行脚本),一切正常。
以下代码给出了正确的行为:
adb shell 'sh /data/local/tmp/my_script.sh'
我完全迷路了,我希望这里有人可以帮助我。
提前致谢!
更新:所以这个问题让我困惑了一段时间,我花了很多时间调查这个问题。我注意到另一种行为,比如我锁定屏幕(通过按电源键)然后发出命令:
adb shell 'sh /data/local/tmp/my_script.sh &'
然后解锁屏幕,脚本就可以正常运行了。
这真的是我很久以来遇到的最奇怪的事情了。
我真的希望有人能在这里伸出援手。
【问题讨论】:
-
它无法运行的设备之间是否存在一致性?它们都是相同的 API 版本或制造商吗?
-
您好科里,感谢您的快速回复。是的,这两个不工作的设备都是三星设备。如何查看 API 版本?
-
有一张桌子here
-
你为什么要在后台运行脚本?只需在后台运行整个 adb 命令,否则关闭 adb 连接将关闭脚本的 stdin/out/err 并可能导致它失败。
-
您好 dtmilano,通过在命令中运行整个 adb 命令,您的意思是类似于 adb shell 'sh /data/local/tmp/my_script.sh' & 吗?