在脚本中执行哪些操作以便所有脚本自动执行
#! / data / data / com.termux / files / usr / bin / bash
echo "This is the main script and is intended to execute all three auxiliaries."
# Run aux1.sh
source aux1.sh
# Run aux2.sh
source aux2.sh
每次我用 shc 嵌入脚本时都会发生这种情况:
./Auto-Help1.0.sh: line 65: source: ./DataWeb.sh: cannot execute binary file
答案1
shc
用二进制可执行文件(不再是 shell 脚本)替换 shell 脚本(通常是文本文件)。
source
或者.
假设它们的参数是文本文件,而不是二进制文件。因此您不能使用shc
with的输出source
。
答案2
对于不太熟悉 unix/linux shell 的人来说,错误消息可能有点难以理解。错误消息的详细版本为:
在您的脚本中,aux1.sh
或者aux2.sh
,或者甚至在我从这些脚本中调用的脚本中,Auto-Help1.0.sh
执行了一个名为的脚本。该脚本Auto-Help1.0.sh
中有错误,更具体地说是在第 65 行。
在该脚本的第 65 行,您很可能会发现source ./DataWeb.sh
。这意味着:./DataWeb.sh
在当前 shell 中作为一组 shell 命令执行。
但是,./DataWeb.sh
它不被识别为 shell 脚本。它是一个二进制文件。因此,它不能作为脚本执行,也不能像这样被 source 。
那么接下来呢?
-查看./DataWeb.sh
。它是二进制文件,还是应该是 shellscript(顾名思义)?那么为什么它被视为二进制文件? - 您通常如何执行./DataWeb.sh
?尝试在 的第 65 行以这种方式执行Auto-Help1.0.sh
,而不是获取文件。