adb shell后然后再执行命令和 adb shell直接执行命令的不同
时间: 2023-07-23 17:14:18 浏览: 57
adb shell 后再执行命令和 adb shell 直接执行命令有一些不同之处。
当你使用 adb shell 命令进入设备的 shell 终端后,你可以直接在终端中输入命令并执行。这种方式允许你与设备进行交互,就像在设备上直接操作一样。
而当你在 adb shell 后再执行命令时,你可以将命令作为参数传递给 adb shell 命令。这样做的好处是,你可以在本地主机上执行一条或多条命令,而无需在设备上多次输入 adb shell 命令。这对于批量执行命令或者执行复杂的脚本非常有用。
总结来说,adb shell 直接执行命令是在设备上直接操作,而 adb shell 后再执行命令是在本地主机上通过 adb 命令传递命令到设备上执行。
相关问题
call adb shell和adb shell命令
在 .bat 文件中,CALL 和不带 CALL 的命令之间有一些细微的差别。如果你使用 CALL 命令来执行 adb shell 命令,那么在 adb shell 命令执行完毕后,控制权会返回到原来的 .bat 文件,继续执行下一条命令。而如果你直接执行 adb shell 命令,那么在 adb shell 命令执行完毕后,控制权不会返回到原来的 .bat 文件,而是停止在 adb shell 命令处,不再执行后面的命令。
因此,如果你希望在执行 adb shell 命令后继续执行下一条命令,你应该使用 CALL 命令,比如:
```
CALL adb shell ls -l
```
而如果你只是想执行 adb shell 命令,然后停止在该命令处,你可以直接使用 adb shell 命令,比如:
```
adb shell ls -l
```
python 如何进入adb shell执行命令
在 Python 中可以使用 `subprocess` 模块来执行 adb 命令,并进入 adb shell 执行命令。示例如下:
```python
import subprocess
# 执行 adb shell 命令
p = subprocess.Popen(['adb', 'shell'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
# 执行命令
out, err = p.communicate('ls /sdcard\n'.encode())
print(out.decode())
```
其中,`Popen` 函数用于创建一个新的进程,并返回一个 `Popen` 对象。`stdin=subprocess.PIPE` 表示将子进程的标准输入重定向到管道,`stdout=subprocess.PIPE` 表示将子进程的标准输出重定向到管道。然后可以使用 `communicate` 方法向子进程的标准输入发送命令,并获取子进程的标准输出和标准错误输出。示例中的命令是 `ls /sdcard\n`,表示在 adb shell 中执行 `ls /sdcard` 命令。注意,命令需要以换行符结尾。