Als ich versuchte, alle Skripte in einem Verzeichnis auszuführen Beim Verwenden des Befehls run-parts stieß ich auf einen Fehler - "run-parts:failed to exec script.sh:Exec format error" . Die Skripte funktionierten einwandfrei, wenn ich sie wie "./script.sh" und "sh script.sh" direkt ausführte. Aber sie funktionierten nicht, als ich sie mit dem Befehl run-parts ausführte. Für diejenigen, die sich fragen, führt der Befehl run-parts alle Skripte in einem Verzeichnis aus. Wenn Sie beim Ausführen eines Skripts einen solchen Fehler erhalten, hilft Ihnen dieser kurze Tipp, den „Exec-Formatfehler“ zu beheben, wenn Sie Skripts mit dem Befehl „run-parts“ unter Linux ausführen.
Behebung des „Exec-Formatfehlers“ beim Ausführen von Skripten mit dem Befehl „run-parts“
Um alle Skripte im Ordner „Dokumente“ auszuführen, habe ich Folgendes ausgeführt:
$ run-parts --regex '^s.*\.sh
Ich bekomme folgende Fehlermeldung:
run-parts: failed to exec Documents/script1.sh: Exec format error run-parts: Documents/script1.sh exited with return code 1 run-parts: failed to exec Documents/script2.sh: Exec format error run-parts: Documents/script2.sh exited with return code 1 run-parts: failed to exec Documents/script3.sh: Exec format error run-parts: Documents/script3.sh exited with return code 1 run-parts: failed to exec Documents/script4.sh: Exec format error run-parts: Documents/script4.sh exited with return code 1

run-parts:Fehler beim Ausführen von script.sh:Exec-Formatfehler
Um den "Exec-Formatfehler" zu beheben, müssen Sie einen Shebang hinzufügen am Anfang Ihrer Skripte, damit der Kernel weiß, wie er sie ausführen soll. Für diejenigen, die sich fragen, ein Shebang ist die Zeichenfolge, die aus den Zeichen Nummernzeichen besteht und Ausrufezeichen (#! ) am Anfang eines Skripts. Wenn Sie den Shebang am Anfang einer Textdatei hinzufügen, wird er als ausführbare Datei interpretiert.
Die meisten Skripte beginnen mit einem Shebang. Hier sind einige typische Shebang-Beispiele.
Bourne-Shell , oder eine kompatible Shell:
#!/bin/sh
Bash:
#!/bin/bash
Perl:
#!/usr/bin/perl
Python 2.x:
#!/usr/bin/python
Python 3.x:
#!/usr/bin/python3
Das nennen wir Shebang.
Kommen wir nun zurück zum Thema. Bearbeiten Sie Ihre Skripte mit Ihrem bevorzugten Editor:
$ nano Documents/ostechnix.sh
Fügen Sie den folgenden Kram am Anfang des Skripts hinzu:
#!/bin/sh

„Exec-Formatfehler“ beim Ausführen von Skripten mit Run-Parts behoben
Jetzt können Sie die Skripte mit dem Befehl run-parts ohne Probleme mit dem Befehl run-parts ausführen.
Aktualisierung:
Als einer unserer Leser Mr.Danesh im Kommentarbereich unten erwähnt, Anstatt den Pfad des Interpreters fest zu codieren, z. B.
#!/usr/bin/python3
Wir können verwenden:
#!/usr/bin/env python3
Dies ist tragbarer falls der Interpreter in einem anderen (nicht standardmäßigen) Verzeichnis installiert ist. env ist ein Shell-Befehl für Linux und Unix-ähnliche Betriebssysteme. Es wird oft von Shell-Skripten verwendet, um den richtigen Interpreter zu starten.
Sie können auch ShellCheck verwenden Dienstprogramm, um Probleme in Ihren Shell-Skripten zu finden.
- ShellCheck – Ein kostenloses Dienstprogramm zum Auffinden von Fehlern in Ihren Shell-Skripten
Herunterladen – Kostenloser Leitfaden:„Erweiterter Bash-Scripting-Leitfaden“
Hoffe das hilft.