Cieľom tejto príručky je prediskutovať existenciu súboru vo vašom systéme prostredníctvom skriptovania bash:
Ako skontrolovať existenciu súboru pomocou skriptovania bash:
1) Zadaním názvu súboru do terminálu:
Najprv musíme vytvoriť súbor skriptu bash a použiť nasledujúci príkaz:
$dotýkať satestfile.sh
Názov súboru, ktorý som vytvoril, je testfile.sh, prípona .sh označuje súbor skriptu shell:
Otvorte testfile.sh v ľubovoľnom textovom editore. Potom napíšte skript a uložte ho stlačením tlačidla uložiť.
Jedným zo spôsobov je nájsť súbor tak, že od používateľa v termináli požiadate o názov súboru.
Použite -f skontrolovať existenciu súboru.
Napíšte nasledujúci skript:
#!/bin/bashzahodil „Zadajte názov súboru“
čítaťnový súbor1
keby [ -f '$ newfile1' ]
potom
zahodil „Súbor sa našiel“
inak
zahodil „Súbor sa nenašiel“
byť
Vráťte sa na terminál a spustite súbor na tlačový výstup:
./názov súboru.shV termináli sa zobrazí správa o zamietnutí povolenia.
Spustite ho spustením nižšie uvedeného príkazu:
$chmod+ x testfile.sh
Zadajte názov súboru a výstup sa vytlačí:
2) Zadaním názvu súboru počas písania skriptu:
Ďalší spôsob, ako nájsť súbor, je zadať názov súboru počas písania skriptu. Máme 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í je aj s dvojitými hranatými zátvorkami, ako je uvedené nižšie:
- test VYJADRENIE.
- ak [VÝRAZ]
- ak [[VÝRAZ]]
Poďme to pochopiť na príkladoch:
1) test [Výraz]
Skopírujte daný skript a vložte ho do editora, uložte ho:
názov súboru= súbor1
keby test -f '$ názov súboru';
potom
zahodil '$ súbornašiel.'
inak
zahodil '$ súbornebol nájdený '
byť
Výkon:
Pretože v mojom adresári nie je žiadny takýto súbor, kód preto zobrazuje správu Súbor nebol nájdený.
2) ak [Výraz]
Skopírujte nasledujúci skript a skontrolujte, či súbor existuje alebo nie:
#!/bin/bashnázov súboru= myfile.txt
keby [ -f '$ názov súboru' ];
potom
zahodil '$ názov súborunašiel.'
inak
zahodil 'názov súboru nebol nájdený'
byť
Výkon:
3) ak [[Výraz]]
Skopírujte nižšie napísaný skript a prilepte ho na terminál:
#!/bin/bashnázov súboru= testovací súbor
keby [[ -f '$ názov súboru' ]];
potom
zahodil '$ názov súborunašiel.'
inak
zahodil '$ názov súborunebol nájdený '
byť
Výkon:
Ak chcete skontrolovať adresár:
3) Zadaním názvu adresára počas písania skriptu
Použi -d vlajka na kontrolu existencie adresára.
V nižšie uvedenom skripte je dir11 premenná, v ktorej uložíte súbor, ktorý nachádzate; v tomto prípade chcem skontrolovať, či názov adresára testDir existuje alebo nie.
#!/bin/bashdir11= testDir
keby [ -d '11 dolárov' ]
potom
zahodil „Adresár sa našiel“
inak
zahodil „Adresár sa nenašiel“
byť
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, musíte zadať názov adresára, ktorý hľadáte:
zahodil 'zadajte názov adresára.'
čítaťDir1
keby [ -d 'Dir1' ]
potom
zahodil 'adresár bol nájdený'
inak
zahodil 'adresár nebol nájdený'
byť
Výkon:
Kontrola súboru bez použitia príkazu if:
Testovací príkaz je možné vykonať bez príkazu if. Výstup sa zobrazí iba vtedy, ak súbor existuje; inak by neexistoval žiadny výstup:
Napíšte scenár:
- test -fmyfile.txt&& zahodil 'súbor bol nájdený'
- [ -fmyfile.txt] && zahodil '$ súborbolo nájdené.'
- [[ -fmyfile.txt]] && zahodil '$ súborbolo 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:
- [[ -dtestDir]] && zahodil 'adresár existuje'
- 2) [ -dtestDir] && zahodil '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 skontrolujte existenciu rôznych súborov namiesto použitia vnorených príkazov if/else:
keby [ -fnew_file.txt-do -fnewfile.txt];potom
zahodil 'Oba súbory existujú.'
byť
Ďalším spôsobom je:
#!/bin/bashkeby [[ -fnew_file.txt&& -fnewfile.txt]];potom
zahodil 'Oba súbory existujú.'
byť
Výkon:
2) Kontrola viacerých súborov bez použitia príkazu if:
Nasledujúci príkaz použite na kontrolu viacerých súborov súčasne 1 bez použitia príkazu:
- [[ -fnew_file.txt&& -fnewfile.txt]] && zahodilOba súbory sa ukončia.
- [[ -fnew_file.txt&& -fnewfile.txt]] && zahodilOba súbory sa ukončia.
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žívať if, nested if-else a bez príkazov if na kontrolu súboru alebo adresára. Tiež sme sa pozreli na to, ako skontrolovať viac súborov alebo adresárov.