Poudarek tega vodiča je razpravljati o obstoju datoteke v vašem sistemu s pomočjo bash skript:
Kako preveriti obstoj datotek z uporabo bash skript:
1) Z vnosom imena datoteke v terminal:
Najprej moramo ustvariti datoteko skripta bash, uporabimo spodnji ukaz:
$ touch testfile.shIme datoteke, ki sem jo ustvaril, je »testfile.sh ",".Razširitev sh ”označuje datoteko skripta lupine:
Odprite "testno datoteko.sh ”v katerem koli urejevalniku besedil. Nato napišite skript in ga shranite s pritiskom na "shrani".
Eden od načinov je poiskati datoteko tako, da od uporabnika v terminalu zahteva ime datoteke.
Uporaba "-f«, Da preverite obstoj datoteke.
Napišite spodnji skript:
#!/ bin / bashecho "Vnesite ime datoteke"
preberite newfile1
če [-f "$ newfile1"]
potem
echo "Datoteka je najdena"
drugače
echo "Datoteke ni mogoče najti"
fi
Vrnite se v terminal in zaženite datoteko za tiskanje izhodnih podatkov:
./Ime datoteke.shV terminalu se prikaže sporočilo o zavrnitvi dovoljenja.
Naj bo izvršljiv z izvajanjem spodnjega ukaza:
$ chmod + x testna datoteka.sh
Vnesite ime datoteke in natisnila bo izhod:
2) Z vnosom imena datoteke med pisanjem skripta:
Drug način za iskanje datoteke z navedbo imena datoteke med pisanjem skripta. Razpoložljivost datoteke lahko preverimo na tri načine. Prvi uporablja ukaz "test", drugi uporablja "if" z izrazom v oglatih oklepajih, tretji pa tudi "if", vendar dvojni oglati oklepaji, kot je navedeno spodaj:
- “Preizkus IZRAZ."
- "Če [IZRAŽANJE]"
- "Če [[IZRAŽANJE]]"
Razumimo s primeri:
1) test [Izraz]
Kopirajte dani skript in ga prilepite v urejevalnik, shranite ga:
ime datoteke = datoteka1
če test -f "$ ime datoteke";
potem
echo "$ datoteka je najdena."
drugače
echo "$ datoteka ni bila najdena"
fi
Izhod:
Ker v mojem imeniku ni take datoteke, zato koda prikaže sporočilo »Datoteke ni mogoče najti«.
2) če [Izraz]
Kopirajte naslednji skript, da preverite, ali datoteka obstaja ali ne:
#!/ bin / bashime datoteke = myfile.txt
če [-f "$ ime_datoteke"];
potem
echo "$ filename je našel."
drugače
echo "imena datoteke ni bilo mogoče najti"
fi
Izhod:
3) če [[izraz]]
Kopirajte spodaj napisani skript in ga prilepite na terminal:
#!/ bin / bashime datoteke = testna datoteka
če [[-f "$ ime datoteke"]];
potem
echo "$ filename je našel."
drugače
echo "$ filename ni bilo mogoče najti"
fi
Izhod:
Če želite preveriti imenik:
3) Z vnosom imena imenika med pisanjem skripta
Uporabi "-dZastava za preverjanje obstoja imenika.
V spodaj omenjenem skriptu je »dir11« spremenljivka, v kateri shranite datoteko tisto, ki jo najdete; v tem primeru želim preveriti, ali ime imenika “testDir” obstaja ali ne.
#!/ bin / bashdir11 = testDir
če [-d "$ dir11"]
potem
echo "Imenik je našel"
drugače
echo "Imenika ni bilo mogoče najti"
fi
Izhod:
2) Z vnosom imena datoteke v terminal:
Ko v terminalu zaženete ukaz, da preverite, ali imenik obstaja ali ne, morate vnesti ime imenika, ki ga iščete:
echo "vnesite ime svojega imenika."
preberite Dir1
če je [-d "Dir1"]
potem
echo "imenik je bil najden"
drugače
echo "imenika ni mogoče najti"
fi
Izhod:
Preverjanje datoteke brez uporabe stavka "if":
Ukaz "test" je mogoče izvesti brez stavka "if". Izpis bo prikazan samo, če datoteka obstaja; sicer ne bi bilo nobenega rezultata:
Napišite scenarij:
- test -f myfile.txt && echo "datoteka je bila najdena"
- [-f moja datoteka.txt] && echo "$ datoteka je bila najdena."
- [[-f moja datoteka.txt]] && echo "$ datoteka je bila najdena."
Izhod:
Preverjanje imenika brez uporabe stavka "if":
Uporabite spodnje izjave, da preverite, ali imenik obstaja ali ne:
- [[-d testDir]] && echo "imenik obstaja"
- 2) [-d testDir] && echo "imenik obstaja"
Izhod:
Preverjanje več datotek / imenikov:
1) Preverjanje več datotek z izjavami "če":
Uporabite zastavico "-a", da preverite obstoj različnih datotek, namesto da uporabite ugnezdene stavke "if / else":
če je [-f nova_datoteka.txt -a -f nova datoteka.txt]; potem
"obe datoteki obstajata."
fi
Drug način je:
#!/ bin / bashče je [[-f nova_datoteka.txt && -f nova datoteka.txt]]; potem
"obe datoteki obstajata."
fi
Izhod:
2) Preverjanje več datotek brez uporabe stavka "če":
Uporabite naslednjo izjavo za istočasno preverjanje več datotek 1 brez uporabe »če«:
- [[-f nova_datoteka.txt && -f nova datoteka.txt]] && echo “Obe datoteki zapreta."
- [[-f nova_datoteka.txt && -f nova datoteka.txt]] && echo “Obe datoteki zapreta."
Izhod:
Zaključek:
Ta članek je pokazal, kako uporabljati 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 "če", ugnezdenega "če-drugače" in brez stavkov "če" za preverjanje datoteke ali imenika. Preučili smo tudi, kako preveriti več datotek ali imenikov.