gpt4 book ai didi

android - 为什么 gradle 不运行我的 shell 脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:53 26 4
gpt4 key购买 nike

我几乎可以肯定我忽略了一些东西。

我有一个带有 build.gradle 文件的 android gradle 项目。在这里,我指定了任务:

task doSomething(type: Exec) {
println("okay clearly you have got to be getting in here")
commandLine 'sh /Users/dzt/Desktop/create_a_file_on_desktop.sh'
}

而且根本不运行。 shell 文件就是这样:

#!/bin/sh
echo "hi" > /Users/dzt/Desktop/i_am_a_byproduct.txt

我在上面运行了 chmod u+x 所以它是可执行的(我在常规 bash shell 上仔细检查过)。

我还尝试使用 groovy 命令:

"cd ../ && sh /Users/dzt/Desktop/create_a_file_on_desktop.sh".execute()

这也行不通。我有点难过。我没有看到输出文件。但是,我确实在 gradle 控制台中看到了我的打印语句。

这是怎么回事?

** 编辑 **

好的,我深入研究了它 ->

cd ../ 根本不起作用。为什么是这样?我需要使用相对路径,至少相对于这个目录

最佳答案

调用必须是

commandLine 'sh', '/Users/dzt/Desktop/create_a_file_on_desktop.sh'

否则这被认为是一个命令。但是您想以脚本作为参数启动 sh。另一方面,由于您已经设置了执行位,您也可以直接调用 shell 脚本。

参见 http://gradle.org/docs/current/dsl/org.gradle.api.tasks.Exec.html

cd ../&& sh script 像你想要的那样运行 cd 也不能像这样工作,因为 && 是一个 shell 脚本命令。如果你想像这样运行,你必须运行 shell 并使其作为命令运行。例如

commandLine 'sh', '-c', 'cd ~/scripts && sh myscript.sh'

关于android - 为什么 gradle 不运行我的 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com