繁体   English   中英

在 adb shell 上运行 linux bash 脚本

[英]run linux bash script on adb shell

我正在尝试在 adb shell 上运行 linux shell 脚本。 它给出了错误! 这是整个故事:

我写了一个简单的 bash 脚本 hello.sh :

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

hello

将它作为 ./hello.sh 运行会产生 o/p

hello world!

现在我使用

adb push hello.sh /data/folder_name

然后运行以下命令进入 adb shell

adb shell

在 adb shell 中触发以下命令

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

这是我在 adb shell 上得到的:

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

这里发生了什么事! 或者是否有一些不同的方法来为 adb shell 脚本编写函数

我搜索但没有得到正确的解决方案 请帮助。

不确定 adb,但 'function' 不是标准语法。 它在许多 shell 中可用,但定义函数的标准方法是:

hello() { echo hello world; }

当作为sh调用时,bash 进入 posix 模式,它试图尽可能地模仿 sh 历史版本的启动行为,同时也符合 POSIX 标准。

保留字function对于 bash 是可选的,但我认为sh历史版本是未知的。

尝试调用命令

bash /tmp/test.sh

您不需要将脚本推送到您的手机 - 只需像这样在 shell 本身中展开它,您就可以节省时间:

adb shell "$hello.sh"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM