Poudarek tega priročnika je razpravljati o obstoju datoteke v vašem sistemu s pomočjo skripta bash:
Kako preveriti obstoj datotek s skripti bash:
1) Z vnosom imena datoteke v terminal:
Najprej moramo ustvariti datoteko skripta bash in uporabiti spodnji ukaz:
$dotiktestfile.sh
Ime datoteke, ki sem jo ustvaril, je testfile.sh, razširitev .sh označuje datoteko skripta lupine:
Odprite testfile.sh v katerem koli urejevalniku besedil. Nato napišite skript in ga shranite s pritiskom na shrani.
Eden od načinov je, da datoteko poiščete tako, da od uporabnika v terminalu zahtevate ime datoteke.
Uporaba -f da preverite obstoj datoteke.
Napišite spodnji skript:
#!/bin/bashvrgel ven 'Vnesite ime datoteke'
prebratinewfile1
če [ -f '$ newfile1' ]
potem
vrgel ven 'Datoteka je najdena'
drugače
vrgel ven 'Datoteke ni mogoče najti'
biti
Vrnite se na terminal in zaženite datoteko za tiskanje izpisa:
./filename.shV terminalu se prikaže sporočilo o zavrnitvi dovoljenja.
Izvedite ga tako, da izvedete spodnji ukaz:
$chmod+ x testfile.sh
Vnesite ime datoteke in natisnila bo izpis:
2) Z vnosom imena datoteke med pisanjem skripta:
Drug način za iskanje datoteke je, da med pisanjem skripta navedete ime datoteke. Razpoložljivost datoteke imamo na tri načine. Prvi uporablja testni ukaz, drugi uporablja if z izrazom v oglatih oklepajih, tretji pa tudi if, vendar dvojne oglate oklepaje, kot je prikazano spodaj:
- test EXPRESSION.
- če [EXPRESSION]
- če [[EXPRESSION]]
Razumimo to s primeri:
1) test [izraz]
Kopirajte dani skript in ga prilepite v urejevalnik, shranite:
Ime datoteke= datoteka1
če preskus -f '$ ime datoteke';
potem
vrgel ven '$ datotekoje našel. '
drugače
vrgel ven '$ datotekoni bilo najdeno '
biti
Izhod:
Ker v mojem imeniku ni take datoteke, zato koda prikaže sporočilo Datoteka ni najdena.
2) če [izraz]
Kopirajte naslednji skript, da preverite, ali datoteka obstaja ali ne:
#!/bin/bashIme datoteke= myfile.txt
če [ -f '$ ime datoteke' ];
potem
vrgel ven '$ ime datotekeje našel. '
drugače
vrgel ven 'ime datoteke ni bilo najdeno'
biti
Izhod:
3) če [[izraz]]
Kopirajte spodaj napisani skript in ga prilepite na terminal:
#!/bin/bashIme datoteke= preskusna datoteka
če [[ -f '$ ime datoteke' ]];
potem
vrgel ven '$ ime datotekeje našel. '
drugače
vrgel ven '$ ime datotekeni bilo najdeno '
biti
Izhod:
Če želite preveriti imenik:
3) Z vnosom imena imenika med pisanjem skripta
Uporabi -d zastavo za preverjanje obstoja imenika.
V spodaj omenjenem skriptu je dir11 spremenljivka, v katero shranite datoteko, ki jo najdete; v tem primeru želim preveriti, ali ime imenika testDir obstaja ali ne.
#!/bin/bashdir11= testDir
če [ -d '$ dir11' ]
potem
vrgel ven 'Imenik je bil najden'
drugače
vrgel ven 'Imenika ni bilo mogoče najti'
biti
Izhod:
2) Z vnosom imena datoteke v terminal:
Ko zaženete ukaz v terminalu, da preverite, ali imenik obstaja ali ne, morate vnesti ime imenika, ki ga iščete:
vrgel ven 'vnesite ime imenika.'
prebratiDir1
če [ -d 'Dir1' ]
potem
vrgel ven 'imenik je bil najden'
drugače
vrgel ven 'imenik ni bil najden'
biti
Izhod:
Preverjanje datoteke brez uporabe stavka if:
Testni ukaz je mogoče izvesti brez stavka if. Prikazal bo izhod le, če datoteka obstaja; drugače ne bi bilo izhoda:
Napišite skript:
- preskus -fmyfile.txt&& vrgel ven 'datoteka je bila najdena'
- [ -fmyfile.txt] && vrgel ven '$ datotekoje bil najden. '
- [[ -fmyfile.txt]] && vrgel ven '$ datotekoje bil najden. '
Izhod:
Preverjanje imenika brez uporabe stavka if:
S spodnjimi stavki preverite, ali imenik obstaja ali ne:
- [[ -dtestDir]] && vrgel ven 'imenik obstaja'
- 2) [ -dtestDir] && vrgel ven 'imenik obstaja'
Izhod:
Preverjanje več datotek/imenikov:
1) Preverjanje več datotek z izjavami if:
Uporabite zastavico -a, da preverite obstoj različnih datotek, namesto da uporabite ugnezdene stavke if/else:
če [ -fnew_file.txt-za -fnewfile.txt];potem
vrgel ven 'Obe datoteki obstajata.'
biti
Drug način je:
#!/bin/bashče [[ -fnew_file.txt&& -fnewfile.txt]];potem
vrgel ven 'Obe datoteki obstajata.'
biti
Izhod:
2) Preverjanje več datotek brez uporabe stavka if:
Uporabite naslednji stavek za istočasno preverjanje več datotek 1 brez uporabe, če:
- [[ -fnew_file.txt&& -fnewfile.txt]] && vrgel venObe datoteki se zapreta.
- [[ -fnew_file.txt&& -fnewfile.txt]] && vrgel venObe datoteki se zapreta.
Izhod:
Zaključek:
Ta članek je pokazal, kako uporabiti bash skript za preverjanje datoteke ali imenika. Za preverjanje razpoložljivosti datoteke smo uporabili različne možnosti. Najprej uporabimo ukaz test z različnimi zastavicami. Nato smo se naučili uporabe if, ugnezdene if-else, in brez stavkov if za preverjanje datoteke ali imenika. Preučili smo tudi, kako preveriti več datotek ali imenikov.