腳本內做了什麼,以便自動執行所有腳本
#! / 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
,而不是取得文件。