我有一个info.properties
文件,其中包含此MY_NAME
属性,并且我可以在我的Makefile
.我已经尝试过,但无法直接在myScript.sh
文件上使用该属性。
所以我试图将该属性作为参数传递给myScript.sh
.我正在这样做:
在生成文件上:
my_stage:
chmod 777 myScript.sh && ./myScript.sh $(MY_NAME)
在 myScript.sh 上我有这个:
#!/bin/bash -e
source .build/utils.sh
MY_NAME=$1
echo "MY_NAME=${MY_NAME}"
但我总是收到这个错误:
chmod 777 myScript.sh && ./myScript.sh My-name-Mariana
.build/utils.bash: line 596: My-name-Mariana: command not found
make: *** [test] Error 127
我该如何解决这个问题?
更新:
我知道.build/utils.bash
正在尝试执行我的参数,我可以在错误中看到这一点。但我无法更改该文件,因为我没有它,因为它不是我的代码项目的一部分。
答案1
在脚本的第 596 行(左右),.build/utils.bash
您尝试将其My-name-Mariana
作为命令调用。无论是作为文字还是作为$1
.它不存在,因此执行立即失败(由于-e
上的标志bash
)。
.build/utils.bash: line 596: My-name-Mariana: command not found
解决方案是修复代码。您尚未在此处提供,因此我们无法提供具体建议,但我相信如果您使用相关上下文更新您的问题,有人会很乐意这样做。
答案2
既然你的脚本可以source .build/utils.bash
,你已经证明你实际上能阅读。例如,less .build/utils.bash
在包含 Makefile 的目录中尝试。
要修复实际问题而不修改.build/utils.bash
,您可以尝试将 的内容分配$1
到MY_NAME
变量中,然后使用shift
命令将其从$1
-前你source .build/utils.sh
。
但随后utils.bash
接收$1
为空字符串,这可能会导致它失败或执行不同的操作 - 如果不阅读utils.bash
或一些有关它的文档,就不可能知道它期望什么。