Bash 'set -x' kommando

Bash 'set -x' kommando

Bash sett Kommando brukes til mange formål i bash, og den har mange alternativer for å aktivere eller deaktivere forskjellige typer funksjoner i skallmiljøet. De -x Alternativet er et av alternativene til den angitte kommandoen som brukes til å aktivere feilsøkingsfunksjonen i bash -skriptet for feilsøking. 'sett -x'Kommando kan brukes fra terminalen eller inne i et hvilket som helst bash -skript. Forskjellige formål for å bruke 'sett -x'Kommando er beskrevet i denne opplæringen.

Aktiver feilsøking

Hvis skriptet ikke viser riktig utgang eller uventet utgang, kan dette problemet løses ved å bruke feilsøking. Feilsøkingsfunksjonen kan aktiveres på forskjellige måter i bash -skriptet som er nevnt nedenfor.

Feilsøkingsfunksjonen kan aktiveres ved å bruke kommandoen 'Set -x' i terminalen eller inne i Bash -skriptet ved å bruke 'Set -x' -kommandoen. Bruken av kommandoen 'Set -x' er vist i neste del av opplæringen.
Feilsøkingsfunksjonen kan også aktiveres ved å bruke -x -alternativet på tidspunktet for å utføre bash -filen som følgende kommando:

$ bash -x filnavn.bash

Feilsøkingsfunksjonen kan også aktiveres ved å bruke følgende linje i begynnelsen av skriptet:

#!/bin/sh -x

Deaktiver feilsøking

Det krever å deaktivere feilsøkingsfunksjonen i bashskriptet etter å ha løst problemet. Kommandoen 'Set +X' brukes til å deaktivere feilsøkingsfunksjonen.

Ulike eksempler på kommandoen 'Set -x'

To forskjellige bruksområder av alternativet 'Set -x' er vist ved å bruke eksempler.

Eksempel 1: Aktiver og deaktiver feilsøkingsfunksjonen

Lag en bash -fil ved å bruke følgende skript som tar innspill fra brukeren før og etter å ha brukt 'Set -x' og 'Set +X' -kommandoer. Fornavnsverdien vil bli tatt og skrevet ut før du bruker 'Set -x' -kommandoen. Etternavnsverdien vil bli tatt og skrevet ut etter å ha brukt 'Set -x' -kommandoen. Deretter vil verdiene på fornavnet og etternavnet bli skrevet ut etter å ha brukt 'Set +X' -kommandoen.

#!/bin/bash
#Takingsinngang og skriv ut
Les -P "Skriv inn fornavnet ditt:" Første navn
ekko "Fornavnet ditt er $ FirstName"
#Enable Set -x -kommandoen
sett -x
#Ta en annen inndata og skriv ut
Les -P "Skriv inn etternavnet ditt:" LastName
ekko "Dra etternavnet er $ etternavn"
#Disable the Set X -kommandoen
sett +x
#Trykk variablene
ekko "Fullnavnet ditt er $ FirstName $ lastName"

Produksjon:

Følgende utdata vil bli skrevet ut etter å ha utført skriptet ovenfor. I følge utdataene er hver uttalelse av skriptet skrevet ut etter å ha utført 'Set -x' -kommandoen.

Eksempel -2: Feilsøkingsskript ved å bruke 'Set -x' -kommandoen

Lag en bash -fil med følgende skript som tar et filnavn fra brukeren for å lese ved å aktivere feilsøkingsfunksjonen. Kommandoen 'Set -x' har blitt brukt i begynnelsen av skriptet for å aktivere feilsøkingsfunksjonen. Deretter vil et filnavn bli hentet fra brukeren. Hvis ikke noe filnavn blir gitt av brukeren, vil en melding bli skrevet ut. Hvis filnavnet hentet fra brukeren ikke eksisterer eller ikke er en fil, vises en annen feilmelding. Hvis det gyldige filnavnet er hentet fra brukeren, vil innholdet i filen bli skrevet ut.

#!/bin/bash
#Enable feilsøkingen
sett -x
#Ta filnavnet fra brukeren
ekko -n "Skriv inn et filnavn:"
Les fn
#Sjekk om filnavnet er tomt eller ikke
if ["$ fn" == ""];
deretter
ekko "filnavn mangler.""
#Sjekk om filen eksisterer eller ikke
elif [ ! -f "$ fn"];
deretter
#Print feilmelding
ekko "$ fn eksisterer ikke.""
ellers
#Trykk filinnholdet
Cat "$ fn"
fi

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor uten å gi noe filnavn. Utgangen viser at den tomme verdien er tatt som filnavnet. 'Hvis' betingelsen for å sjekke et tomt filnavn er returnert for den tomme inngangen. Så "Echo" -erklæringen for utskriftsfeilmelding er skrevet ut for feilsøkingsalternativ og feilmeldingen, "Filnavn mangler”Er blitt skrevet ut.

Følgende utgang vises etter å ha utført skriptet ovenfor med et filnavn. Utgangen viser at "hvis" -tilstanden for å sjekke tomt filnavn er returnert falsk og at "hvis" -tilstanden for å sjekke ikke-eksisterende fil er returnert falsk også. Inngangsfilnavnet, Testfile.tekst eksisterer på det nåværende stedet. Så 'katt'Kommando for å lese Testfile.tekst Filen er utført og innholdet i filen er skrevet ut.

Følgende utgang vises etter å ha utført skriptet ovenfor med et filnavn. Utgangen viser at "hvis" -tilstanden for å sjekke et tomt filnavn er returnert usant og "IF" -forholdet for å sjekke en ikke-eksisterende fil er returnert sann fordi fil1.tekst eksisterer ikke på det nåværende stedet. Så 'katt'Kommando for å lese filen er ikke utført og feilmeldingen, "fil1.TXT eksisterer ikke.”Er blitt skrevet ut.

Konklusjon

Feilsøkingsoppgaven er en veldig viktig del av ethvert programmeringsspråk for å finne ut feilen i koden enkelt. Feilsøkingsoppgaven gjøres på forskjellige måter for forskjellige programmeringsspråk. Flere måter å aktivere feilsøkingsfunksjon for bashskriptet og bruken av 'Set -x' -kommandoen for feilsøking av Bash -skriptet er beskrevet i denne opplæringen.