如何登录android设备并执行命令

如何登录android设备并执行命令,android,linux,bash,shell,adb,Android,Linux,Bash,Shell,Adb,我正在编写一个shell脚本,我想在其中登录到Android设备(ADBShell)并在那里执行一些命令。我的脚本(script1.sh)如下所示: # adb shell; cd sdcard; sh script2.sh & 但上述命令不起作用。一旦执行了“adb shell”命令,我就进入Android shell,之后剩下的两个命令就不会执行了。如果我键入“exit”从android shell中出来,现在剩余的命令将在主机shell中执行: ./script1.sh: lin

我正在编写一个shell脚本,我想在其中登录到Android设备(ADBShell)并在那里执行一些命令。我的脚本(script1.sh)如下所示:

# adb shell; cd sdcard; sh script2.sh &
但上述命令不起作用。一旦执行了“adb shell”命令,我就进入Android shell,之后剩下的两个命令就不会执行了。如果我键入“exit”从android shell中出来,现在剩余的命令将在主机shell中执行:

./script1.sh: line 119: cd: /sdcard/: No such file or directory

不要使用分号,例如将defalut.prop复制到/sdcard/

~/adt-bundle-linux-x86_64-20140321/sdk/platform tools/adb shell cp default.prop/sdcard/

要在android中执行脚本,您需要这样执行


/system/bin/sh script.sh

我想您正在搜索
herdoc
()

例如:

adb shell << ADB_SHELL
cd /sdcard
ls
exit
ADB_SHELL

adb shell如果要重定向文件中
script2.sh
的输出,请使用shell管道:
sh sdcard2.sh>stdout.log
。这是什么样的输出?日志?您以后要处理的数据?谢谢。对不起,我的问题变了。它正在工作,但我的主机脚本(script1.sh)没有退出。我在我的宿主脚本(script1.sh)adb shell中执行以下操作,看起来它并没有退出adb远程shell。当我按下Ctrl-C时,我从adb远程shell中出来。为什么“退出”命令在“herdoc”中不起作用?您可以在注销后使用
nohup
()使进程保持活动状态。但是:这是一种糟糕的风格,我不能告诉你这是否适合你,因为这取决于脚本在做什么。如果您需要进一步的帮助,您需要写一篇关于您正在做/计划做什么的详细解释。如果脚本
script2.sh
没有终止,那么解释器将无法到达下一个命令。这就是为什么您的连接仍然处于活动状态。