Search code examples
androidbashshellubuntu-12.04adb

Can't run adb commands in bash script


I'm trying to launch Android tethering settings from adb shell. The main purpose of doing so is to enable USB tethering mode by running a shell script. I'm using the following set of commands on my Ubuntu Terminal (12.04):

adb shell
am start -n com.android.settings/.TetherSettings
sleep 7
input tap 162 159
input tap 385 607

This method works fine when the commands are executed one by one, but I'm not able to run them as normal shell script. Please help! Here is the complete script:

#!/bin/sh
adb shell
am start -n com.android.settings/.TetherSettings
sleep 7
input tap 162 159
input tap 385 607

I guess, it can't find the path to adb in my system. I've tried replacing the first line with the actual path to adb tool in SDK directory. That didn't work either. Any work around for this? (Sorry if the question seems silly. I'm really new to bash scripting!)

EDIT: Updated script:-

#!/bin/sh
cd /home/evinish/Documents/Android/adt-bundle-linux-x86_64-20130219/sdk/platform-tools
adb shell "
am start -n com.android.settings/.TetherSettings
sleep 7
input tap 162 159
input tap 385 607
"

Solution

  • Thanks everybody! I finally solved the problem. Here is the updated script:

        #!/bin/sh
        cd /home/evinish/Documents/Android/adt-bundle-linux-x86_64-20130219/sdk/platform-tools
        ./adb start-server
        ./adb devices
        ./adb shell "
        am start -n com.android.settings/.TetherSettings
        sleep 15
        input tap 162 159
        input tap 385 607
        "
        sleep 10
    

    The only problem was missing "./" before adb.

    EDIT: also why not check to see if the server is running first?