Bash-kontrol, hvis filen findes

Det meste af tiden finder vi muligvis en situation, hvor vi muligvis skal udføre en handling, der kontrollerer, om en fil findes eller ej.

I Bash kan vi bruge en “testkommando” til at kontrollere, om der findes en fil og bestemme typen af en fil.

Følgende er syntaxerne for testkommandoen, og vi kan bruge en hvilken som helst af disse kommandoer:

Vi skal bruge en enkelt parentes “[” -kommando for at gøre vores script bærbart til alle POSIX-skaller. Den opgraderede version af testkommandoen indeholder dobbelte parenteser “[[“, som understøttes på de fleste af de moderne systemer, der bruger Bash, Zsh og Ksh som standardskal.

Kontroller, om der findes fil

Mens du kontrollerer, om der findes en fil, er de mest anvendte filoperatorer -e og -f. Indstillingen “-e” bruges til at kontrollere, om der findes en fil uanset type, mens indstillingen “-f” kun bruges til at returnere sand værdi, hvis filen er en almindelig fil (ikke en mappe eller en enhed).

Den mest almindelige mulighed for at kontrollere, om filen findes eller ikke, er at bruge testkommandoen med “hvis betinget udsagn”.

Følgende er eksemplerne for at kontrollere, om “read_file”. txt “-fil findes:

Metode 1

Metode 2

Metode 3

Output

Output for alle de tre metoder vil være som nedenfor, fordi vi har en fil (read_file.txt) til stede i biblioteket:

read_file.txt exist

Hvis vi vil udføre en handling, der giver et resultat baseret på, om filen findes eller ej, kan vi bruge if / then-konstruktionen i følgende måde:

Eksempel

Output

read_file.txt exist

Vi kan også bruge testkommandoen uden if-sætningen. Vi kan bruge en af følgende metoder:

Metode 1

Metode 2

Metode 3

Output

Output for alle de tre metoder vil være som nedenfor, fordi vi har en fil (read_file.txt) til stede i biblioteket:

read_file.txt exist

Eksempel

I modsætning til & &, udsagnet efter || operatør udføres kun, hvis testkommandoens udgangsstatus er “falsk”.

Eksempel

Output

read_file.txt exist

Dette er de almindeligt anvendte metoder i Bash for at kontrollere, om filen findes eller ej.

Kontroller, om biblioteket findes

Operatøren “-d” giver os mulighed for at teste, om en fil er en mappe eller ej.

Følgende er metoderne til at kontrollere, om “Javatpoint” -mappen findes:

Metode 1

Metode 2

Bemærk: Vi kan også bruge dobbelt parentes “[[” i stedet for en enkelt parentes “[” .

Output

Output for begge ovenstående metoder vil være som nedenfor, da vi har en mappe (kaldet Javatpoint) til stede på den angivne placering:

Javatpoint is a directory

Kontroller, om filen ikke eksisterer

Testudtrykket kan ignoreres ved hjælp af udråbstegnet (! -logisk NOT-operator). Tjek følgende eksempel:

Eksempel

Ovenstående script kan også skrives som nedenfor:

Output

missing_read_file.txt unavailable

File Test Operators

Testkommandoerne inkluderer følgende filoperatører, som giver os mulighed for at test for bestemte typer filer:

-b FileReturns “True” hvis FILEN findes som en blokspecial fil.
-c FileReturns “Sand”, hvis filen findes som en specialtegnfil.
-d FileReturns “True” hvis FILEN findes som et bibliotek.
-e FileReturns “True “hvis FILEN findes som en fil, uanset type (node, bibliotek, stikkontakt osv.).
-f FileReturns ” True ” hvis FILEN findes som en almindelig fil (ikke et bibliotek eller en enhed).
-G FileReturns “Sand”, hvis FILEN findes og indeholder samme gruppe som brugeren kører komm og.
-h FileReturns “True” hvis FILEN findes som et symbolsk link.
-g FileReturns “True” hvis FILEN findes og indeholder sæt-group-id (sgid) flag sæt.
-k FileReturns “True” hvis FILEN findes og indeholder et sticky bit-sæt.
-L FileReturns “True” hvis FIL eksisterer som et symbolsk link.
-O FileReturns “True” hvis FILE eksisterer og ejes af den bruger, der kører kommandoen.
-p FileReturns “True” hvis FILEN findes som et rør.
– r FileReturns “True” hvis FILEN findes som en læsbar fil.
-S FileReturns “True” hvis FILE findes som et stik.
-s FileReturns “True” hvis FILEN findes og har en nul størrelse.
-u FileReturns “True” hvis FILEN findes, og set-user-id (suid) flag er indstillet.
-w FileReturns “True” hvis FILEN findes som en skrivbar fil.
-x FileReturns “True” hvis FILEN findes som en eksekverbar fil.

Write a Comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *