Search code examples
androidlinuxshelladb

run linux bash script on adb shell


I'm trying to run linux shell script on adb shell. It's giving errors! Here is the whole story:

I wrote a simple bash script hello.sh :

#!/bin/bash
function hello
{
    echo "hello world!"
}

hello

running it as ./hello.sh produces the o/p

hello world!

Now I pushed the file to android device using

adb push hello.sh /data/folder_name

then ran following command to enter in adb shell

adb shell

In adb shell fired following commands

cd /data/folder_name
chmod 755 hello.sh
sh hello.sh

This is what I get on adb shell :

# sh hello.sh
sh hello.sh
function: not found
hello world!
hello: not found
#

What's happening here! Or is there some different way to write function for adb shell script

I searched but didn't get proper solution Please help.


Solution

  • Not sure about adb, but 'function' is not standard syntax. It is available in many shells, but the standard way to define a function is:

    hello() { echo hello world; }