Tulosta bash-komentosarjan lähdekoodi ja sen sisältämät

Onko olemassa tapa tarkastella / näyttää / tulostaa bash-komentosarjan lähdekoodia sisältäen (alias ”lähteet”) ”)?

Esimerkiksi:

sub.sh-tiedosto

 function showMe(){ echo "INCLUDE" } 

main.sh-tiedosto

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

Main.sh: n ”tuloste” näyttää:

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

Kommentit

  • lähdekoodin voi nähdä more/less/cat, ajon aikana voit käyttää -x-lippua (esim. set -x). Ei ole olemassa sellaista taikuutta, joka tulostaisi staattisesti lähdekoodin ja mukana olevan tiedoston. Ei vastaavaa kuin cpp C-kielellä.
  • Kuinka " tulostat " / main.sh?

Vastaus

Voit yrittää seurata awk:

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

joten jokainen rivi, joka alkaa source fname, tulisi korvata tiedosto, jos sellainen on.

Vastaa

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

Kommentit

  • Toimii hyvin .. mutta en voi ' käyttää perliä, kiitos muuten.
  • laittaa echo "source foo.sh for the rescue" ryhmässä foo.sh ja saat ääretön silmukka 🙂
  • @EvgenyVereshchagin, olet erittäin julma! 🙂

Vastaa

Jos et aio suorittaa myös komentosarjaa, tässä on yksinkertainen tapa lähdekoodin ja sen sisältävien osien näyttämisen:

bash -v foo.sh 

Kommentit

  • Tämä komento myös jäsentää käsikirjoitus, tarvitsen vain lähteen, kiitos.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *