Quellcode des Bash-Skripts mit seinen Includes drucken

Gibt es eine Möglichkeit, den Quellcode des Bash-Skripts mit seinen Includes (auch bekannt als „Quellen“ anzuzeigen / anzuzeigen / zu drucken? „)?

Zum Beispiel:

sub.sh-Datei

 function showMe(){ echo "INCLUDE" } 

main.sh-Datei

#!/bin/bash source sub.sh showMe echo "OK" 

Der „Druck“ von main.sh zeigt:

#!/bin/bash showMe(){ echo "INCLUDE" } showMe echo "OK" 

Kommentare

  • Quellcode kann von more/less/cat gesehen werden. Zur Laufzeit können Sie das Flag -x verwenden (z. B. set -x). Es gibt keine solche Magie, die den Druckquellcode und die enthaltene Datei statisch druckt. Kein Äquivalent zu cpp für C-Sprache.
  • Wie drucken Sie " " von main.sh?

Antwort

Sie können versuchen, :

awk "/^source/ { while (getline l <$2 > 0) print l; close($2); next; } { print; }" main.sh 

Daher sollte jede Zeile, die mit source fname beginnt, durch den Inhalt von ersetzt werden Datei, falls vorhanden.

Antwort

perl -p0e "while(s/source\s+(\S+)/`cat $1`/e){}" foo.sh 

Kommentare

  • Funktioniert hervorragend .. aber ich kann ' kein Perl verwenden, danke übrigens.
  • put echo "source foo.sh for the rescue" in foo.sh und Sie erhalten eine Endlosschleife 🙂
  • @EvgenyVereshchagin, Sie sind sehr grausam! 🙂

Antwort

Wenn es Ihnen nichts ausmacht, das Skript auch auszuführen, finden Sie hier eine einfache Möglichkeit Der Quellcode und seine Includes werden angezeigt:

bash -v foo.sh 

Kommentare

  • Dieser Befehl analysiert auch die Skript, ich brauche nur die Quelle, danke.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.