Kuidas kontrollida, kas fail on bash -is olemas

How Check If File Exists Bash

Faili kättesaadavuse kontrollimiseks Linuxis on mitu võimalust. Testkäsk bash -skriptimisel on üks peamisi lähenemisviise faili olemasolu kontrollimiseks.
Selle juhendi keskmes on arutleda faili olemasolu kohta teie süsteemis bash -skriptimise abil.

Failide olemasolu kontrollimine bash -skriptide abil:

1) Faili nime terminali sisestades:



Esiteks peame looma bash-skriptifaili, kasutades allpool mainitud käsku:



$puudutadatestfile.sh

Minu loodud faili nimi on testfile.sh, laiend .sh tähistab shelliskripti faili:



Avage testfile.sh mis tahes tekstiredaktoris. Seejärel kirjutage skript, salvestage see, vajutades nuppu Salvesta.

Üks võimalus on leida fail, küsides terminali kasutajalt failinime.



Kasutamine -f faili olemasolu kontrollimiseks.

Kirjutage allolev skript:

#!/bin/bash
viskas välja 'Sisestage oma failinimi'
loeuusfail1
kui [ -f '$ newfile1' ]
siis
viskas välja 'Fail on leitud'
muidu
viskas välja 'Faili ei leitud'
olla

Minge tagasi terminali ja käivitage fail printimiseks:

./failinimi.sh

Terminalis kuvatakse luba keelatud teade.

Tehke see käivitatavaks, täites alltoodud käsu:

$chmod+ x testfail.sh

Sisestage faili nimi ja see prindib väljundi:

2) Skripti kirjutades failinime sisestamine:
Teine viis faili leidmiseks, andes skripti kirjutamise ajal failinime. Faili saadavuse kontrollimiseks on meil kolm võimalust. Esimene kasutab testkäsklust, teine ​​kasutab juhul, kui avaldis on nurksulgudes, ja kolmas on ka nurksulgudega, kui, kuid mitte, nagu allpool näidatud:

  1. test EXPRESSION.
  2. kui [EXPRESSION]
  3. kui [[VÄLJENDUS]]

Mõistame seda näidetega:

1) test [väljend]
Kopeerige antud skript ja kleepige see redaktorisse, salvestage see:

#!/bin/bash
faili nimi= fail1
kui test -f '$ failinimi';
siis
viskas välja '$ failon leidnud.'
muidu
viskas välja '$ failpole leitud '
olla

Väljund:

Kuna minu kataloogis sellist faili pole, kuvab kood sõnumi Faili ei leitud.

2) kui [Väljend]

Kopeerige järgmine skript, et kontrollida, kas fail on olemas või mitte:

#!/bin/bash
faili nimi= minufail.txt
kui [ -f '$ failinimi' ];
siis
viskas välja '$ failinimion leidnud.'
muidu
viskas välja 'failinime ei leitud'
olla

Väljund:

3) kui [[väljend]]

Kopeerige allpool kirjutatud skript ja kleepige see terminali:

#!/bin/bash
faili nimi= testfail
kui [[ -f '$ failinimi' ]];
siis
viskas välja '$ failinimion leidnud.'
muidu
viskas välja '$ failinimipole leitud '
olla

Väljund:

Kataloogi kontrollimiseks tehke järgmist.

3) Skripti kirjutamise ajal kataloogi nime sisestades

Kasuta -d kataloogi olemasolu kontrollimiseks.

Allpool mainitud skriptis on dir11 muutuja, millesse salvestate leitud faili; selles näites tahan kontrollida kataloogi nime testDir olemas või mitte.

#!/bin/bash
dir11= testDir
kui [ -d '$ dir11' ]
siis
viskas välja 'Kataloog on leitud'
muidu
viskas välja 'Kataloogi ei leitud'
olla

Väljund:

2) Faili nime terminali sisestades:
Kui käivitate terminalis käsu, et kontrollida, kas kataloog on olemas või mitte, peate sisestama otsitava kataloogi nime:

#!/bin/bash
viskas välja 'tippige oma kataloogi nimi.'
loeRež. 1
kui [ -d 'Dir1' ]
siis
viskas välja 'kataloog on leitud'
muidu
viskas välja 'kataloogi ei leitud'
olla

Väljund:

Faili kontrollimine ilma if -lauset kasutamata:

Testkäsu saab käivitada ilma if -käskluseta. See kuvab väljundit ainult siis, kui fail on olemas; muidu poleks väljundit:

Kirjutage skript:

  1. test -fmyfile.txt&& viskas välja 'fail on leitud'

  2. [ -fmyfile.txt] && viskas välja '$ failon leitud.'

  3. [[ -fmyfile.txt]] && viskas välja '$ failon leitud.'

Väljund:

Kataloogi kontrollimine ilma if -lauset kasutamata:

Kasutage kataloogi olemasolu või mitte kontrollimiseks alltoodud avaldusi:

  1. [[ -dtestDir]] && viskas välja 'kataloog on olemas'

  2. 2) [ -dtestDir] && viskas välja 'kataloog on olemas'

Väljund:

Mitme faili/kataloogi kontrollimine:

1) Mitme faili kontrollimine avaldustega:
Kasutage lippu -a, et kontrollida erinevate failide olemasolu, selle asemel et kasutada pesastatud if/else lauseid:

#!/bin/bash
kui [ -fuus_fail.txt-juurde -fnewfile.txt];siis
viskas välja 'Mõlemad failid on olemas.'
olla

Teine võimalus on:

#!/bin/bash
kui [[ -fuus_fail.txt&& -fnewfile.txt]];siis
viskas välja 'Mõlemad failid on olemas.'
olla

Väljund:

2) Mitme faili kontrollimine ilma if -lauset kasutamata:
Kasutage järgmist lauset mitme faili üheaegseks kontrollimiseks 1 ilma, kui kasutate järgmist:

  1. [[ -fuus_fail.txt&& -fnewfile.txt]] && viskas väljaMõlemad failid väljuvad.

  2. [[ -fuus_fail.txt&& -fnewfile.txt]] && viskas väljaMõlemad failid väljuvad.

Väljund:

Järeldus:

See artikkel on näidanud, kuidas faili või kataloogi kontrollimiseks kasutada bash -skripte. Faili kättesaadavuse kontrollimiseks kasutasime erinevaid võimalusi. Esiteks kasutame testkäsklust erinevate lippudega. Seejärel õppisime faili või kataloogi kontrollimiseks if, nested if-else kasutamist ja ilma if-lauseteta. Samuti vaatasime üle, kuidas kontrollida mitut faili või kataloogi.