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/bashviskas 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.shTerminalis 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:
- test EXPRESSION.
- kui [EXPRESSION]
- kui [[VÄLJENDUS]]
Mõistame seda näidetega:
1) test [väljend]
Kopeerige antud skript ja kleepige see redaktorisse, salvestage see:
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/bashfaili 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/bashfaili 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/bashdir11= 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:
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:
- test -fmyfile.txt&& viskas välja 'fail on leitud'
- [ -fmyfile.txt] && viskas välja '$ failon leitud.'
- [[ -fmyfile.txt]] && viskas välja '$ failon leitud.'
Väljund:
Kataloogi kontrollimine ilma if -lauset kasutamata:
Kasutage kataloogi olemasolu või mitte kontrollimiseks alltoodud avaldusi:
- [[ -dtestDir]] && viskas välja 'kataloog on olemas'
- 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:
kui [ -fuus_fail.txt-juurde -fnewfile.txt];siis
viskas välja 'Mõlemad failid on olemas.'
olla
Teine võimalus on:
#!/bin/bashkui [[ -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:
- [[ -fuus_fail.txt&& -fnewfile.txt]] && viskas väljaMõlemad failid väljuvad.
- [[ -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.