使用相同的子 shell 從主腳本執行腳本,這會發生在我身上嗎?

使用相同的子 shell 從主腳本執行腳本,這會發生在我身上嗎?

腳本內做了什麼,以便自動執行所有腳本

#! / 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或者.假設他們的參數是文字文件,而不是二進位。所以你不能使用shcwith的輸出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,而不是取得文件。

相關內容