Hvordan bruke alternativet Bash “Set -x”

Hvordan bruke alternativet Bash “Set -x”

Den faste kommandoen til Linux brukes til å sette og usete spesifikke alternativer. Disse alternativene administrerer oppførselen til et gitt skript og aktiverer oppgavens utførelse uten feil. I denne artikkelen bruker vi “X” -alternativet med den angitte kommandoen som informerer bash for å vise utsagnene når de er behandlet. Det er enormt nyttig for feilsøking når vi trenger å bestemme hvilke linjer som ble utført og i hvilken sekvens. Set -x -operasjonen kan brukes direkte i et åpent bashskall eller i et bash -skript. I de følgende eksemplene bruker vi SET -kommandoen med “X” -alternativet for å aktivere og deaktivere de forskjellige funksjonalitetene.

Eksempel 1: Program ved hjelp av Set -x i et bash -skript

Her lager vi “Bash1.SH ”-filen og oppgi skriptet for å bruke alternativet Set -x. Vi bruker kommandoen “Set -x” for å aktivere feilsøking fordi bashskriptet ikke muliggjør feilsøking som standard. Vi setter først SH-Band-kommandoen i skriptet vårt. Etter det bruker vi “Set” -modifisereren med “-x” -flagget for å aktivere feilsøking. Deretter erklærer vi “Echo” -kommandoen som gir uttalelsen om "min første uttalelse". Samme som denne ekko -uttalelsen, definerer vi en annen "min andre uttalelse" -uttalelse ved hjelp av "ekko" -modifisereren. Deretter utfører vi bashskriptet ved å åpne terminalen for å vise resultatene av å muliggjøre feilsøking fra Set -x -kommandoen.

#!/bin/bash
sett -x
ekko "min første uttalelse"
ekko "Min andre uttalelse"

På terminalen påkaller vi "Bash" -tnøkkelordet for sammenstilling av “BASH1.sh ”-fil. Etter det utfører vi den gitte filen som skriver ut ekkokommandoen med "+" -symbolet sammen med den resulterende uttalelsen fra Echo -kommandoene.

Eksempel 2: Program ved hjelp av Set -x i en deaktivert modus i et bash -skript

I det nylige eksemplet demonstrerte vi måten å aktivere feilsøking ved hjelp av “Set -x” -kommandoen. Nå gir vi en måte å deaktivere feilsøkingen i bashskriptet ved å bruke “Set” -kommandoen, men med “X” -alternativet i et annet format. Her konstruerer vi skriptet i en “bash2.sh ”. Først bruker vi “Set -x” -kommandoen som muliggjør feilsøking av bash. Deretter setter vi “Echo” -kommandoen for å skrive ut "PRINT -setningen1" -uttalelsen. Etter dette distribuerer vi “Set +X” -kommandoen for å deaktivere feilsøking av bash -skriptet. Forskjellen i å aktivere og deaktivere feilsøkingen er at vi bruker “X” -alternativet med det negative “-” -symbolet for å aktivere feilsøkingen. “X” med det positive “+” -symbolet indikerer å deaktivere Bash -feilsøkingen.

#!/bin/bash
sett -x
ekko "Print Statement1"
sett +x
ekko "Print Statement2"

Det forrige bashskriptet utføres i terminalen ved hjelp av “Bash ./Bash2.sh ”-kommando. Resultatet av dette skriptet skriver ut “Echo” -kommandoen med utgangen fra den ekkokommandoen fordi feilsøkingen er aktivert. Deretter skrives “Set +X” -kommandoen ut der vi deaktiverer feilsøkingen. Deaktiverende modus for feilsøking av bash trykker ganske enkelt utgangen fra Echo -kommandoen som sett i følgende bilde:

Eksempel 3: Program ved hjelp av Set -x i Shebang Line -kommandoen i et bash -skript

Vi har en annen måte å aktivere feilsøking i bash ved å inkludere “-x” -flagget i Shebang-linjen. Her lager vi manuset inne i “bash3.sh ”. Vi begynner med å definere “#!/bin/bash -x ”Shebang -kommando der“ -x ”-alternativet også er erklært for å aktivere feilsøking av det gitte bashskriptet. Deretter oppretter vi “MyName” -attributtet som vi tildeler en "Linux" -verdi. Attributtet er ytterligere satt med Echo -kommandoen for å skrive ut verdien. Etter dette deaktiverer vi feilsøkingen med "Set +X" -uttalelsen. Vi erklærer at "Mysalary" -attributtet og initialiserer den med "7000" -verdien for feilsøking. Nøkkelordet "Echo" kalles over "Mysalary" -attributtet til å sende ut verdien. Deretter definerer vi en sak igjen for å aktivere feilsøkingen i bash -skriptet. For dette definerer vi “Set +X” -kommandoen. Etter det setter vi "MyLanguage" -attributtet igjen med "English" -verdien for å undersøke den aktiverte modus for feilsøking.

#!/bin/bash -x
Myname = Linux
Echo $ myName
sett +x
MySalary = 7000
ekko $ mysalary
sett -x
Mylanguage = engelsk
Echo $ myLanguage

Når “bash3.SH ”utføres i terminalen, den skriver først ut“ MyName = Linux ”-uttrykket og Echo -setningen med dens resulterende verdi. "7000" -verdien er den resulterende verdien av ekko -uttrykket der feilsøkingen ikke er aktivert. Neste er også det trykte "Mylanguage = English" -uttrykket og ekko -uttrykket med den "engelske" utgangsverdien ettersom feilsøkingsmodus er aktivert.

Eksempel 4: Program ved hjelp av Set -x i et bash -skript for det betingede uttrykket

Nå bruker vi “Set -x” -kommandoen for å feilsøke den betingede uttalelsen som utfører resultatet, samt skriver ut hvert trinn i utdataene fra bash -skriptet for en bedre forståelse av skriptet. Her genererer vi bashskriptet i “Bash4.sh ”-fil. Det første trinnet i skriptet er å erklære kommandoen “Set -x”. Ved å bruke “Set -x” -kommandoen, aktiverer vi feilsøkingsmodus for bashskriptet vårt. Deretter oppretter vi “Y” -attributtet og spesifiserer en numerisk verdi på “50”. Etter det distribuerer vi mens sløyfen der tilstanden er gitt som "$ y -GT 0". Uttalelsen "gjør og gjort" har operasjonen for å tilfredsstille While -betingelsen. Kommandoen “Echo” er tilordnet med en "$ y" -variabel som skriver ut redningsverdien hver gang til mens Loop er avsluttet.

sett -x
y = 50
mens [$ y -GT 0]; gjøre
y = $ [$ y-10]
ekko $ y
Sov 1
Ferdig

Utgangen vises med hvert eneste trinn i skriptet der de betingede verdiene blir oppdatert.

Konklusjon

Bruken av “Set -x” -kommandoen i bash er en feilsøkingsprosess som feilsøker koden ved å gjenkjenne feilene i skriptet. "Set -x" kommer i hjelp når det er en utfordring for brukerne å utvikle et feilfritt skript, spesielt når det omfatter et stort antall linjer. Vi ga bashskriptene ved hjelp av “Set -x” og “Set +X” -kommandoer for demonstrasjon. Videre kan vi også bruke alternativet "X" på terminalen som "bash -x ./Filnavn.SH ”Hvis vi ikke vil bruke“ Set -x ”-kommandoen i skriptet. Vi oppnår samme resultat ved å gjøre dette.