Fokus ovog vodiča je raspraviti o postojanju datoteke u vašem sustavu putem bash skriptiranja:
Kako provjeriti postojanje datoteke pomoću bash skriptiranja:
1) Unosom naziva datoteke u terminal:
Prvo, moramo stvoriti datoteku bash skripte, upotrijebite dolje navedenu naredbu:
$dodirtestfile.sh
Naziv datoteke koju sam stvorio je testfile.sh, ekstenzija .sh označava datoteku skripte ljuske:
Otvorite testfile.sh u bilo kojem uređivaču teksta. Zatim napišite skriptu, spremite je pritiskom na spremi.
Jedan od načina je pronaći datoteku tako što ćete zatražiti naziv datoteke od korisnika u terminalu.
Koristiti -f provjeriti postojanje datoteke.
Napišite ispod skriptu:
#!/bin/bashizbaciti 'Unesite naziv datoteke'
čitatinova datoteka1
ako [ -f '$ newfile1' ]
zatim
izbaciti 'Datoteka je pronađena'
drugo
izbaciti 'Datoteka nije pronađena'
biti
Vratite se na terminal i pokrenite datoteku za ispis rezultata:
./naziv datoteke.shPoruka o odbijenom dopuštenju bit će prikazana na terminalu.
Učinite ga izvršnim izvršavanjem dolje navedene naredbe:
$chmod+ x testfile.sh
Unesite naziv datoteke i ispisat će se rezultat:
2) Upisom naziva datoteke tijekom pisanja skripte:
Drugi način pronalaženja datoteke davanjem naziva datoteke tijekom pisanja skripte. Imamo tri načina za provjeru dostupnosti datoteke. Prvi koristi testnu naredbu, drugi koristi if s izrazom u uglatim zagradama, a treći također s if ali dvostrukim uglatim zagradama kako je dolje naznačeno:
- test EXPRESSION.
- ako [EXPRESSION]
- ako [[EXPRESSION]]
Shvatimo to primjerima:
1) test [izraz]
Kopirajte zadanu skriptu i zalijepite je u uređivač, spremite je:
naziv datoteke= datoteka1
ako test -f '$ naziv datoteke';
zatim
izbaciti '$ datotekupronašao.'
drugo
izbaciti '$ datotekunije pronađeno '
biti
Izlaz:
Kako u mom direktoriju nema takve datoteke, stoga kod prikazuje poruku Datoteka nije pronađena.
2) ako [izraz]
Kopirajte sljedeću skriptu da provjerite postoji li datoteka ili ne:
#!/bin/bashnaziv datoteke= myfile.txt
ako [ -f '$ naziv datoteke' ];
zatim
izbaciti '$ naziv datotekepronašao.'
drugo
izbaciti 'naziv datoteke nije pronađen'
biti
Izlaz:
3) ako je [[izraz]]
Kopirajte dolje napisanu skriptu i zalijepite je na terminal:
#!/bin/bashnaziv datoteke= testni datoteku
ako [[ -f '$ naziv datoteke' ]];
zatim
izbaciti '$ naziv datotekepronašao.'
drugo
izbaciti '$ naziv datotekenije pronađeno '
biti
Izlaz:
Da biste provjerili direktorij:
3) Unosom naziva direktorija tijekom pisanja skripte
Koristiti -d zastavica za provjeru postojanja direktorija.
U dolje spomenutoj skripti, dir11 je varijabla u koju spremate datoteku onu koju pronađete; u ovom primjeru želim provjeriti postoji li ime direktorija testDir ili ne.
#!/bin/bashdir11= testDir
ako [ -d '$ dir11' ]
zatim
izbaciti 'Imenik je pronađen'
drugo
izbaciti 'Imenik nije pronađen'
biti
Izlaz:
2) Unosom naziva datoteke u terminal:
Kada pokrenete naredbu u terminalu da provjerite postoji li direktorij ili ne, morate unijeti naziv direktorija koji tražite:
izbaciti 'upišite ime direktorija.'
čitatiDir1
ako [ -d 'Dir1' ]
zatim
izbaciti 'direktorij je pronađen'
drugo
izbaciti 'direktorij nije pronađen'
biti
Izlaz:
Provjera datoteke bez korištenja naredbe if:
Testna naredba može se izvršiti bez naredbe if. Prikazat će se izlaz samo ako datoteka postoji; inače, ne bi bilo izlaza:
Napišite skriptu:
- test -fmyfile.txt&& izbaciti 'datoteka je pronađena'
- [ -fmyfile.txt] && izbaciti '$ datotekuje nađen.'
- [[ -fmyfile.txt]] && izbaciti '$ datotekuje nađen.'
Izlaz:
Provjera direktorija bez upotrebe naredbe if:
Upotrijebite dolje navedene izraze da provjerite postoji li direktorij ili ne:
- [[ -dtestDir]] && izbaciti 'direktorij postoji'
- 2) [ -dtestDir] && izbaciti 'direktorij postoji'
Izlaz:
Provjeravanje više datoteka/direktorija:
1) Provjeravanje više datoteka s if naredbama:
Upotrijebite zastavicu -a za provjeru postojanja različitih datoteka umjesto upotrebe ugniježđenih naredbi if/else:
ako [ -fnew_file.txt-do -fnewfile.txt];zatim
izbaciti 'Obje datoteke postoje.'
biti
Drugi način je:
#!/bin/bashako [[ -fnew_file.txt&& -fnewfile.txt]];zatim
izbaciti 'Obje datoteke postoje.'
biti
Izlaz:
2) Provjeravanje više datoteka bez upotrebe naredbe if:
Upotrijebite sljedeću izjavu za provjeru više datoteka istodobno 1 bez korištenja ako:
- [[ -fnew_file.txt&& -fnewfile.txt]] && izbacitiObje datoteke izlaze.
- [[ -fnew_file.txt&& -fnewfile.txt]] && izbacitiObje datoteke izlaze.
Izlaz:
Zaključak:
Ovaj članak je pokazao kako koristiti bash skripte za provjeru datoteke ili direktorija. Koristili smo različite mogućnosti za provjeru dostupnosti datoteke. Prvo, koristimo testnu naredbu s različitim zastavicama. Zatim smo naučili korištenje if, ugniježđenog if-else, i bez if naredbi za provjeru datoteke ili direktorija. Također smo pregledali kako provjeriti više datoteka ili direktorija.