So führen Sie mehrere Shell-Skripte nacheinander in einem Durchgang mit einem anderen Shell-Skript aus

So führen Sie mehrere Shell-Skripte nacheinander in einem Durchgang mit einem anderen Shell-Skript aus

Liebe Experten, ich habe ein kleines Problem ... ich versuche, mehrere Shell-Skripte mit derselben Erweiterung (.sh) in einem Durchgang auszuführen, die sich in einem Verzeichnis befinden. Bisher habe ich ein allgemeines Skript wie das folgende geschrieben. Aber das Problem ist, dass es nicht zu Ende ausgeführt wird, sondern weiterläuft. Ich kann nicht herausfinden, wo die Probleme bestehen. Ich hoffe, dass sich ein Experte das ansieht. Mein kleiner Code ist wie unten. Wenn ich etwas wie bash scriptone.sh oder bash scriptkk.sh mache, funktioniert es einwandfrei, aber ich möchte es nicht manuell machen. Danke

 #!/bin/sh
 for f in *.sh; do
  bash "$f" -H 
done

Antwort1

Wenn das allgemeine Skript, auf das Sie in Ihrer Frage verweisen, ebenfalls die .shErweiterung hat und im selben Verzeichnis vorhanden ist wie alle anderen Skripte, die Sie ausführen möchten, werden Sie eine Endlosschleife über alle Dateien ausführen .sh, weil Sie Ihr allgemeines Skript rekursiv aufrufen.

Sie können dies auf verschiedene Weise lösen, z. B. indem Sie das allgemeine Skript an einen anderen Speicherort verschieben oder alle nicht allgemeinen Skripts in ein bestimmtes Unterverzeichnis legen und Ihr allgemeines Skript so ändern, dass sie dort gefunden werden.

verwandte Informationen