Wydrukuj kod źródłowy skryptu bash wraz z zawartością

Czy istnieje sposób na wyświetlenie / pokazanie / wydrukowanie kodu źródłowego skryptu bash wraz z jego dołączeniami (znanymi również jako „źródła „)?

Na przykład:

plik sub.sh

 function showMe(){ echo "INCLUDE" } 

Plik main.sh

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

„print” pliku main.sh pokaże:

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

Komentarze

  • kod źródłowy można zobaczyć przez more/less/cat, w czasie wykonywania możesz użyć flagi -x (np. set -x). Nie ma takiej magii, która statycznie wypisze kod źródłowy wydruku i dołączony plik. Brak odpowiednika cpp dla języka C.
  • Jak " print " z main.sh?

Odpowiedź

Możesz spróbować śledzić awk:

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

więc każdy wiersz zaczynający się od source fname należy zastąpić treścią plik, jeśli istnieje.

Odpowiedź

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

Komentarze

  • Działa świetnie .. ale nie mogę ' używać perla, tak przy okazji, dziękuję.
  • wstaw echo "source foo.sh for the rescue" w foo.sh i otrzymujesz pętlę nieskończoności 🙂
  • @EvgenyVereshchagin, jesteś bardzo okrutny! 🙂

Odpowiedź

Jeśli nie masz nic przeciwko wykonaniu skryptu, oto prosty sposób wyświetlić kod źródłowy i jego zawartość:

bash -v foo.sh 

Komentarze

  • To polecenie analizuje również potrzebuję tylko źródła, dziękuję.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *