Løs utgave Bash dårlig erstatning

Løs utgave Bash dårlig erstatning
Du har kanskje mottatt syntaksproblemet med dårlig substitusjon mens du utvikler bash -skript. Etter å ha surfet gjennom fora, kan du oppdage at du ikke er alene; Andre individer møter den samme feilen. Det er en typografisk feil som skjer når du kjører skallskriptet ditt, og det kan skje av forskjellige årsaker. Feil bruk av instruksjonssubstitusjon og feilaktige tegn som er lagt til programmet er to viktige årsaker til dette.

La oss se hvordan vi kan gjøre skallskriptet vårt forårsake denne feilen og hvordan vi kan løse det. Kom i gang med den nye bash -filen som er opprettet med Ubuntus "Touch" -spørsmål og åpne den i “GNU Nano” -redigereren.

$ Touch Sub.sh
$ nano sub.sh

Eksempel 01

Den første grunnen til dårlig substitusjonsfeil er bruken av feil kodesyntaks. La oss se på dette. Med utgangspunkt i den første bash -koden har vi lagt til bashstøtte i den første linjen i bash -skriptet, jeg.e., “#!/bin/bash ”. Etter dette har vi initialisert en enkel variabel “V” med listekommandoen over Ubuntu som dens verdi. Denne verdien er satt inn i de krøllete parentesene og med "$" -tegnet for å betrakte det som en skallkommando. Etter dette er Echo -uttalelsen her for å bare vise verdien av "V" -variabelen på skallet. Koden vår er komplett og klar til bruk.

Vi lagret bashoden og kom tilbake til terminalen etter å ha brukt henholdsvis Ctrl+S og Ctrl+X. Vi har utført denne nyopprettede bash -manusfilen med "bash" -instruksjonen og fått "dårlig substitusjon" her på skjermen vår. Denne feilen har oppstått på grunn av bruk av krøllete parenteser “” rundt listeinstruksjonen i koden.

$ bash sub.sh

La oss prøve å oppdatere koden vår for å løse denne feilen nå. Så vi har fjernet de krøllete parentesene fra den andre kodelinjen og erstattet den med de enkle parentesene “()” som presentert nedenfor. Totalt sett vil koden forbli den samme som det ikke er noe problem med koden. Lagre denne koden nå.

Etter å ha forlatt GNU Nano -redaktøren, vil vi utføre bash -filen “Sub.SH ”oppdatert kode med bruk av“ bash ”-instruksjonen som presentert nedenfor. Det viser seg at den dårlige substitusjonsfeilen er fjernet etter kodeoppdateringen, og listeinstruksjonen som er satt inn i variabelen “V” er utført med hell. Listekommandoen viste alle gjeldende innhold av hjemmekatalog, i.e., Filer og mapper, på skallskjermen vår.

$ bash sub.sh

Eksempel 02

En annen grunn til forekomsten av dårlige substitusjonsfeil i bash er bruken av unødvendige rom mens du utfører noen variabler. Så vi har lagt til bashstøtte og initialisert en variabel “V” med listeinstruksjonen i den som en verdi som er holdt av enkle parenteser og et dollarskilt “$.”Etter dette har vi brukt“ Echo ”-uttalelsen for å vise den variable“ V ”-verdien. Men vi har lagt til variabelen "V" i "ekko" -uttalelsen sammen med "plassen" i parentesene.

Etter å ha lagret denne koden, har vi utført denne bash -filen med "bash" -spørsmålet i terminalen vår, som presentert nedenfor. Det returnerer bash -substitusjonen på 3Rd Linjen i skriptet.

$ bash sub.sh

For å fjerne feilen fra koden vår, må vi oppdatere koden vår. Så vi har åpnet filen igjen og fjernet den ekstra plassen i de krøllete parentesene i "ekko" -uttalelsen som nedenfor.

Nå som koden er oppdatert og hvitt rom fjernes, må vi utføre denne filen med bash -instruksjonen presentert nedenfor. Etter å ha kjørt filen, er den dårlige substitusjonsfeilen blitt fjernet, og listeinstruksjonen som er spesifisert i variabelen “V” er blitt utført med hell på terminalen etter at "Echo" -uttalelsen ble utført i bash -skriptet. Listen over gjeldende hjemmekatalogfiler og mapper vises på skallskjermen vår nedenfor.

$ bash sub.sh

Eksempel 03

Denne feilen kan også oppstå på grunn av bruken av gjentatte uønskede tegn i koden. Så vi har prøvd en oppdatert kode for å få denne feilen på skallet. For dette må vi bruke "$" -tegnet to ganger i "ekko" -uttalelsen for å spesifisere variabelen "V" for utførelse som er feil syntaks for å gjøre det. Denne variabelen “V” inneholder den enkle listeinstruksjonen som verdien. Siden vi har brukt det doble "$" -tegnet og ut av krøllete parenteser i "ekko" -uttalelsen, vil det føre oss til en dårlig substitusjonsfeil ved utførelse.

Etter å ha kjørt koden med bash -instruksjon, møtte vi en dårlig substitusjonsfeil på linje 3 i bash -skriptet på skallskjermen vår.

$ bash sub.sh

La oss fjerne den dårlige substitusjonsfeilen fra utførelsen ved å oppdatere linje 3 i en kode. Vi har fjernet det indre "$" -skiltet innenfor krøllete parenteser fra "ekko" -uttalelsen.

Etter å ha fjernet “$” -tegnet, har vi utført koden igjen på skallet med “Bash” -kommandoen. Feilen er fjernet, og listen over filer og mapper er vist.

$ bash sub.sh

Eksempel 04

La oss ha vårt siste, men ikke minst eksempel på denne artikkelen. Vi har brukt to variabler, x og y, som inneholder katalogstedet som deres verdi. I "ekko" -uttalelsen av denne koden har vi brukt begge variablene som skal skrives ut og separert med "/" -tegnet. Hver variabel inneholder et dollarskilt med det, mens et enkelt dollartegn også brukes utenfor krøllete parenteser.

Bruken av krøllete parenteser og dollartegn forårsaket en dårlig substitusjonsfeil.

$ bash sub.sh

Så vi har fjernet de krøllete parentesene og det ytre dollarskiltet, som vist nedenfor.

Denne tidsverdien av begge variablene er vist.

$ bash sub.sh

Konklusjon

Dette handler om illustrasjonen av å lage en bash -kode til feilene som fører til at dårlig substitusjonsfeil oppstår under utførelse. Vi har diskutert gjøres og ikke for å unngå feilen via utførelse av forskjellige basheksempler.