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
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.
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 kuincpp
C-kielellä.