Hva gjør “||” Mener? - Bash

Hva gjør “||” Mener?  - Bash
Dobbeltrøret (“||”) er en kontrolloperatør som representerer den logiske eller operasjonen. Den brukes til å utføre en kommando eller en serie kommandoer bare hvis den forrige kommandoen eller rørledningen har mislyktes eller har returnert en status ikke-null statuskode. Denne guiden vil diskutere bruken av hva dette dobbeltrøret betyr og hvordan det brukes i bash -skripting, så les denne guiden hvis du er interessert.

Hva gjør “||” Mener? (Dobbeltrør)

Den doble røroperatøren evaluerer til sant hvis noen av uttrykkene på hver side av den er sant, og usant ellers. Dette betyr at hvis et av uttrykkene er sant, trenger ikke det andre uttrykket å bli evaluert. Hvis begge uttrykkene er falske, evaluerer operatøren til usant, så her er syntaks for det:

Eller Operation Truth Table
0 0 0
0 1 1
1 0 1
1 1 1

Syntaksen for bruk av dobbeltrør.

||

For ytterligere å illustrere har jeg laget et bash -skript som kjører uten dobbeltrør og sjekker utgangsstatusen for å se om kommandoen er utført eller ikke, nedenfor er koden for det:

#!/bin/bash
# Forsøk å fjerne en fil
RM/Home/Aaliyan/Bashfile44.sh
Hvis [$? -ne 0]; deretter
# Den forrige kommandoen mislyktes, så skriv ut en feilmelding
ekko "fil kunne ikke fjernes"
ellers
# Den forrige kommandoen lyktes, så skriv ut en suksessmelding
ekko "Fil fjernet"
fi

I dette eksemplet brukes RM -kommandoen til å fjerne en fil. Hvis filen ikke kan fjernes eller den ikke eksisterer, vil Bash utføre Echo -kommandoen for å skrive ut en feilmelding. For å sjekke utgangsstatus for fjerningskommando IF -setningen brukes, som er lagret i den spesielle skallvariabelen $?. Hvis utgangsstatusen er NOB nullnummer i tilfelle hvis kommandoen mislykkes, er feilmeldingen skrevet ut slik:

Tilsvarende hvis filutgangen og fjernes, vil utdataene være slik:

Nå er her det samme bashskriptet som fjerner filen, men i dette skriptet har jeg brukt dobbeltrøroperatøren, og man kan se koden har blitt lettere å forstå og lesbar:

#!/bin/bash
# Forsøk å fjerne en fil, og skriv ut en feilmelding hvis den mislykkes
RM/PATH/TO/FIL || ekko “Fil kunne ikke fjernes”

I denne koden blir RM -kommandoen utført, og hvis den mislykkes, utføres Echo -kommandoen for å skrive ut feilmeldingen, og her er det utgangen til dette skriptet hvis det mislykkes:

Nå i det første skriptet brukes en IF -uttalelse for å sjekke utgangsstatus for RM -kommandoen, og deretter skrives feilmeldingen hvis kommandoen mislykkes. Denne tilnærmingen er mer ordentlig og krever flere kodelinjer. I tillegg er det mulig å glemme å sjekke utgangsstatusen til en kommando, noe som kan resultere i feil eller uventet oppførsel i skriptet ditt.

Mens jeg i det andre skriptet har brukt “||” operatør for å forenkle feilhåndteringen. Echo -kommandoen utføres bare i tilfelle hvis RM -kommandoen mislykkes som i så fall den første inngangen er falsk. Denne tilnærmingen er mer kortfattet og enklere å lese, og den sikrer at feilmeldingen alltid skrives ut hvis kommandoen mislykkes.

Generelt er det en god praksis å bruke “||” operatør i bashskriptene for å forenkle koden din og gjøre den mer lesbar. Det er imidlertid viktig å merke seg at denne operatøren bare fungerer for enkle tilfeller av feilhåndtering, og i mer komplekse scenarier kan det hende du trenger å bruke mer avanserte teknikker.

Tilsvarende, hvis filen er fjernet, vil ikke dobbeltrøroperatøren utføre den andre tilstanden og vil bare avslutte, så her hvis det er avkjørsler en fil da:

Konklusjon

“||” (Dobbeltrør) Operatør i bash er en nyttig kontrolloperatør som kan forenkle skallskript ved å tillate betinget utførelse av kommandoer basert på suksess eller fiasko fra tidligere kommandoer. Denne guiden gir omfattende detaljer om hva denne operatøren betyr og hvordan den kan brukes i bash -skriptet ved hjelp av eksempler.