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 zucpp
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"
infoo.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.