'adb shell running multiple commands from same cmd window

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?

Thanks.



Solution 1:[1]

Use & not &&

&& run next command only if the previous were successful

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

Solution 2:[2]

You can execute multiple commands separated by && operator

adb shell "netcfg && ps && getprop"

Solution 3:[3]

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

Solution 4:[4]

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.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 TheMaster Moh
Solution 2 Rachit Agrawal
Solution 3 shrikrishna
Solution 4 Brainor