4

I am trying to create a Perl script to run set of commands through adb shell.

cmd1 
cmd2 
cmd3 
cmd3(1)

I put all the commands in a text file and ran it like this: adb shell < adb_commands.txt.(reference)

However, I have this one issue where the last command cmd3(1) needs to be executed from within the previous command cmd3.
So cmd3 will be executed and will wait for cmd3(1) to be entered. This is not happening coz as far as i can tell, adb shell is waiting for cmd3 to finish so it can run cmd3(1).

Can someone please advise on how to solve this issue or if there are any alternate ways to do this?

4 Answers 4

4

You can execute multiple commands separated by && operator

adb shell "netcfg && ps && getprop"
Sign up to request clarification or add additional context in comments.

Comments

4

Use & not &&

&& run next command only if the previous were successful

& run next command after the previous finish no matter successful or not

Comments

1

You can try one of the below way adb shell "cat /sdcard/projectone/Log/one.txt & rm /sdcard/projectone/Log/one.txt"

Comments

0

I don't understand what do you mean by "cmd3(1) needs to be executed from within the previous command cmd3"; the work should be done in the cmd3 function, not in the adb shell. Maybe you could provide a more detailed explanation.

But, in order to execute several commands in one line, you may use adb shell "cmd1;cmd2;cmd3". The && command mentioned by @Rachit is not quite right, because in the case adb shell "netcfg && ps && getprop", command ps will be executed only when netcfg is executed without error raised.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.