Táto príručka sa zameriava na diskusiu o existencii súboru vo vašom systéme prostredníctvom skriptovania bash:
Ako skontrolovať existenciu súboru pomocou skriptu bash:
1) Zadaním názvu súboru v termináli:
Najskôr musíme vytvoriť súbor bash skriptu, ktorý použijeme nižšie uvedený príkaz:
$ dotykový testovací súbor.šNázov súboru, ktorý som vytvoril, je „testfile.sh “,„.prípona sh označuje súbor skriptu shell:
Otvorte „testovací súbor“.sh “v ľubovoľnom textovom editore. Potom napíšte skript, uložte ho stlačením „uložiť“.
Jedným zo spôsobov je vyhľadanie súboru vyžiadaním názvu súboru od používateľa v termináli.
Použite „-f”Na kontrolu existencie súboru.
Napíšte nasledujúci skript:
#!/ bin / bashecho "Zadajte názov súboru"
prečítať nový súbor1
if [-f "$ newfile1"]
potom
echo "Súbor sa našiel"
inak
echo "Súbor sa nenašiel"
fi
Vráťte sa do terminálu a spustite súbor na tlačový výstup:
./názov súboru.šSpráva o odmietnutí povolenia by sa zobrazila v termináli.
Spustite ho vykonaním nižšie uvedeného príkazu:
$ chmod + x testovací súbor.š
Zadajte názov súboru a výstup sa vytlačí:
2) Zadaním názvu súboru počas písania skriptu:
Ďalším spôsobom, ako vyhľadať súbor, je pri písaní skriptu jeho názov. Existujú tri spôsoby, ako skontrolovať dostupnosť súboru. Prvý používa príkaz „test“, druhý používa „if“ s výrazom v hranatých zátvorkách a tretí tiež používa „if“, ale dvojité hranaté zátvorky, ako je uvedené nižšie:
- „Test VYJADRENIE.“
- „If [EXPRESSION]“
- „If [[EXPRESSION]]“
Poďme to pochopiť na príkladoch:
1) test [výraz]
Skopírujte daný skript a vložte ho do editora, uložte ho:
nazov souboru = subor1
ak test -f "$ názov súboru";
potom
echo "$ súbor bol nájdený.„
inak
echo "$ súbor nebol nájdený"
fi
Výkon:
Pretože v mojom adresári žiadny taký súbor nie je, zobrazí sa v kóde správa „Súbor sa nenašiel“.
2) ak [Výraz]
Skopírujte nasledujúci skript a skontrolujte, či súbor existuje alebo nie:
#!/ bin / bashnazov souboru = mojsoubor.TXT
if [-f "$ názov súboru"];
potom
echo "$ názov súboru bol nájdený.„
inak
echo "názov súboru nebol nájdený"
fi
Výkon:
3) ak [[výraz]]
Skopírujte nižšie napísaný skript a vložte ho do terminálu:
#!/ bin / bashnázov súboru = testovací súbor
if [[-f "$ názov súboru"]];
potom
echo "$ názov súboru bol nájdený.„
inak
echo "$ názov súboru nebol nájdený"
fi
Výkon:
Ak chcete skontrolovať adresár:
3) Zadaním názvu adresára pri písaní skriptu
Použi "-d”Na kontrolu existencie adresára.
V nižšie uvedenom skripte je „dir11“ premenná, do ktorej uložíte súbor, ktorý hľadáte; v tomto príklade chcem skontrolovať, či názov adresára „testDir“ existuje alebo nie.
#!/ bin / bashdir11 = testDir
ak [-d "$ dir11"]
potom
echo "Adresár bol nájdený"
inak
echo "Adresár sa nenašiel"
fi
Výkon:
2) Zadaním názvu súboru do terminálu:
Keď spustíte príkaz v termináli a skontrolujete, či adresár existuje alebo nie, je potrebné zadať hľadaný názov adresára:
echo "zadajte názov svojho adresára.„
prečítaj Dir1
if [-d "Dir1"]
potom
echo "adresár bol nájdený"
inak
echo "adresár sa nenašiel"
fi
Výkon:
Kontrola súboru bez použitia príkazu „if“:
Príkaz „test“ je možné vykonať bez príkazu „if“. Výstup sa zobrazí, iba ak súbor existuje; inak by neexistoval žiadny výstup:
Napísať skript:
- test -f myfile.txt && echo "súbor bol nájdený"
- [-f môj súbor.txt] && echo "$ súbor bol nájdený.„
- [[-f môj súbor.txt]] && echo "$ súbor bol nájdený.„
Výkon:
Kontrola adresára bez použitia príkazu „if“:
Pomocou nižšie uvedených príkazov skontrolujte, či adresár existuje alebo nie:
- [[-d testDir]] && echo "adresár existuje"
- 2) [-d testDir] && echo "adresár existuje"
Výkon:
Kontrola viacerých súborov / adresárov:
1) Kontrola viacerých súborov pomocou príkazov „if“:
Pomocou príznaku „-a“ môžete namiesto vnorených príkazov „if / else“ skontrolovať existenciu rôznych súborov:
ak [-f nový_súbor.txt -a -f nový súbor.TXT ]; potom
"Oba súbory existujú.„
fi
Ďalším spôsobom je:
#!/ bin / bashak [[-f nový_súbor.txt && -f nový súbor.TXT ]]; potom
"Oba súbory existujú.„
fi
Výkon:
2) Kontrola viacerých súborov bez použitia príkazu „if“:
Pomocou nasledujúceho príkazu môžete skontrolovať viac súborov súčasne 1 bez použitia „if“:
- [[-f nový_súbor.txt && -f nový súbor.txt]] && echo „Oba súbory sú ukončené.“
- [[-f nový_súbor.txt && -f nový súbor.txt]] && echo „Oba súbory sú ukončené.“
Výkon:
Záver:
Tento článok ukázal, ako používať skriptovanie bash na kontrolu súboru alebo adresára. Na kontrolu dostupnosti súboru sme použili rôzne možnosti. Najprv použijeme príkaz „test“ s rôznymi príznakmi. Potom sme sa naučili použitie „if“, vnorených „if-else“ a bez príkazov „if“ na kontrolu súboru alebo adresára. Pozreli sme sa tiež na to, ako skontrolovať viac súborov alebo adresárov.