Führen Sie Skripte aus einem Hauptskript mit derselben Subshell aus. Passiert mir das?

Führen Sie Skripte aus einem Hauptskript mit derselben Subshell aus. Passiert mir das?

Was wird innerhalb eines Skripts getan, damit alle Skripte automatisch ausgeführt werden

#! / 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

  Jedes Mal, wenn ich mein Skript mit shc einbette, passiert mir Folgendes:

./Auto-Help1.0.sh: line 65: source: ./DataWeb.sh: cannot execute binary file

Antwort1

shcersetzt das Shell-Skript (normalerweise eine Textdatei) durch eine ausführbare Binärdatei (die kein Shell-Skript mehr ist).

sourceoder .gehen Sie davon aus, dass ihr Argument eine Textdatei und keine Binärdatei ist. Sie können die Ausgabe von also nicht shcmit verwenden source.

Antwort2

Für Leute, die sich mit Unix/Linux-Shells nicht so gut auskennen, können die Fehlermeldungen etwas kryptisch sein. Die Langfassung der Fehlermeldung lautet:

Irgendwo in Ihren Skripten aux1.shoder aux2.shvielleicht sogar in einem Skript, das ich aus diesen Skripten aufgerufen habe, Auto-Help1.0.shwird ein Skript namens ausgeführt. Dieses Skript Auto-Help1.0.shenthält einen Fehler, und zwar in Zeile 65.

In Zeile 65 dieses Skripts finden Sie höchstwahrscheinlich source ./DataWeb.sh. Das bedeutet: Führen Sie es ./DataWeb.shin der aktuellen Shell als Satz von Shell-Befehlen aus.

Wird jedoch ./DataWeb.shnicht als Shell-Skript erkannt. Es ist eine Binärdatei. Daher kann es nicht als Skript ausgeführt werden und es kann nicht auf diese Weise als Quelle verwendet werden.

Wie geht es weiter?

- Sehen Sie sich an ./DataWeb.sh. Ist es eine Binärdatei oder sollte es ein Shellscript sein (wie der Name schon sagt)? Warum wird es dann als Binärdatei angesehen? - Wie führen Sie normalerweise aus ./DataWeb.sh? Versuchen Sie es auf diese Weise in Zeile 65 von Auto-Help1.0.sh, anstatt die Datei als Quelle anzugeben.

verwandte Informationen