Mikä on `bash -x`

Eräs kollegani esitteli minulle äskettäin bash -x -ominaisuuden bash-komentosarjani virheenkorjaamiseksi ottamatta reitti echo $foo.

$ bash -x hello-world.sh + echo "Hello World" Hello World 

Sisäisesti – miten bash saavuttaa tämän? Tarkistin man bash ja siinä (ei näyttänyt siltä?) Mainitaan -x -lippu tulkkia kutsuttaessa. Etsin pääasiassa yleiskatsaus siitä, mitä ja mitä ei korjata virheenkorjaukseen -x -ympäristössä tai muissa hakemistoissa.

Vastaa

-x on sama kuin asetus xtrace parametrilla -o -vaihtoehto bashiin. Bash-sivun kopiosta:

Laajennettuasi jokaisen yksinkertaisen komennon , komennolle , tapaus -komennolle, valitse komento tai aritmeettinen kohteelle -komennolla, näytä PS4: n laajennettu arvo , jota seuraa komento ja sen laajennettu argumen ts tai siihen liittyvä sanaluettelo.

En usko, että tämän kanssa on paljon ”gotchoja”: se tulostaa jokaisen komennon, jonka se suorittaa. Oletan, että jos jäsennät uudelleen stderr -tulostusta komentosarjakomentosarjalta, tämä voi häiritä sitä, koska komennot tulostetaan stderr (alias tiedostokuvaaja 2), mutta se tuntuu äärimmäiseltä tapaukselta.

(Voit ottaa tämän myös ehdollisesti käyttöön komentosarjoissa tai vuorovaikutteisissa shell-istunnoissa set -x käynnistä se ja set +x sammuttaaksesi sen uudelleen.)

Kommentit

  • Ei. Kiitos . set help sanoo vain -x Print commands and their arguments as they are executed.. En voinut ' löytää mitään siitä, miten poista tämä nykyisessä kuoressa.
  • @sherrellbc: set help asettaa sijaintiparametrit sanalle help ja ei ' t anna mitään. help set antaa yhden rivin kullekin vaihtoehdolle, mukaan lukien riville, jonka näytät kohteelle -x (vanhemmassa) versiossa ja kohdassa t luettelon lopussa lukee Using + rather than - causes these flags to be turned off.

Vastaa

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