Get Result Code Of Adb Shell Command
How should I get $? of adb shell ? I would like to check the result of adb shell mkdir /xxx. I executed mkdir command by adb shell and failed but the result of $? is
Solution 1:
You should do:
$ adb shell 'mkdir /xxx; echo $?'mkdir failed for /xxx, Read-only file system
255
Notice the single quotes, otherwise $?
is evaluated before reaching adb.
Solution 2:
If you are using an older emulator, then adb shell
does not return the exit value. Then you have to use adb shell 'false; echo $?'
like in https://stackoverflow.com/a/17480194/306864
In newer emulators, it works properly, then you can do adb shell false || echo failed
. Here's how I tested:
$ adb -e android-22 shell false; echo $?
0
$ adb -e android-22 shell 'false; echo $?'
1
$ adb -e android-29 shell false; echo $?
1
$ adb -e android-29 shell 'false; echo $?'
1
Solution 3:
You should check the return value of adb shell
itself instead of checking the last return value on the device.
For example, execute adb shell ls
and then execute echo $?
(from your shell, not from within the device, i.e. don't execute adb shell echo $?
) and you'll see a return value of 0. If you execute adb shell dlfkgjdlkf
and then echo $?
you'll see a return value of 1.
Post a Comment for "Get Result Code Of Adb Shell Command"