Cílem této příručky je diskutovat o existenci souboru ve vašem systému pomocí skriptu bash:
Jak zkontrolovat existenci souboru pomocí skriptu bash:
1) Zadáním názvu souboru v terminálu:
Nejprve musíme vytvořit soubor skriptu bash, použijte níže uvedený příkaz:
$ dotykový testovací soubor.shNázev souboru, který jsem vytvořil, je „testfile.sh “,„.Přípona sh označuje soubor skriptu shellu:
Otevřete „testovací soubor.sh “v libovolném textovém editoru. Poté napište skript, uložte jej stisknutím „uložit“.
Jedním ze způsobů je najít soubor vyžádáním názvu souboru od uživatele v terminálu.
Použijte „-F„Zkontrolovat existenci souboru.
Napište následující skript:
#!/ bin / bashecho "Zadejte svůj název souboru"
číst novýsoubor1
pokud [-f "$ newfile1"]
pak
echo "Soubor je nalezen"
jiný
echo "Soubor nebyl nalezen"
fi
Vraťte se do terminálu a spusťte soubor pro tiskový výstup:
./název souboru.shZpráva o odepření povolení by se zobrazila v terminálu.
Udělejte to spustitelným spuštěním níže uvedeného příkazu:
$ chmod + x testovací soubor.sh
Zadejte název souboru a vytiskne výstup:
2) Zadáním názvu souboru při psaní skriptu:
Další způsob, jak najít soubor zadáním názvu souboru při psaní skriptu. Máme tři způsoby, jak zkontrolovat dostupnost souboru. První používá příkaz „test“, druhý používá „if“ s výrazem v hranatých závorkách a třetí také „if“, ale dvojité hranaté závorky, jak je uvedeno níže:
- „Test VYJÁDŘENÍ.“
- „If [EXPRESSION]“
- „If [[EXPRESSION]]“
Pochopme to na příkladech:
1) test [výraz]
Zkopírujte daný skript a vložte jej do editoru, uložte jej:
název souboru = soubor1
pokud test -f "$ název souboru";
pak
echo "$ soubor byl nalezen."
jiný
echo "$ soubor nebyl nalezen"
fi
Výstup:
Protože v mém adresáři není žádný takový soubor, zobrazí se v kódu zpráva „Soubor nebyl nalezen“.
2) pokud [výraz]
Zkopírujte následující skript a zkontrolujte, zda soubor existuje nebo ne:
#!/ bin / bashnázev_souboru = můjsoubor.txt
if [-f "$ název souboru"];
pak
echo "$ název souboru byl nalezen."
jiný
echo "název souboru nebyl nalezen"
fi
Výstup:
3) pokud [[Výraz]]
Zkopírujte níže napsaný skript a vložte jej do terminálu:
#!/ bin / bashnázev souboru = testovací soubor
if [[-f "$ název souboru"]];
pak
echo "$ název souboru byl nalezen."
jiný
echo "$ název souboru nebyl nalezen"
fi
Výstup:
Kontrola adresáře:
3) Zadáním názvu adresáře při psaní skriptu
Použijte „-d”Příznak ke kontrole existence adresáře.
V níže uvedeném skriptu je „dir11“ proměnná, do které uložíte soubor, který hledáte; v tomto příkladu chci zkontrolovat, zda název adresáře „testDir“ existuje nebo ne.
#!/ bin / bashdir11 = testDir
pokud [-d "$ dir11"]
pak
echo "Adresář byl nalezen"
jiný
echo "Adresář nebyl nalezen"
fi
Výstup:
2) Zadáním názvu souboru v terminálu:
Když spustíte příkaz v terminálu a zkontrolujete, zda adresář existuje nebo ne, musíte zadat název adresáře, který hledáte:
echo "zadejte název svého adresáře."
přečíst Dir1
if [-d "Dir1"]
pak
echo "adresář byl nalezen"
jiný
echo "adresář nebyl nalezen"
fi
Výstup:
Kontrola souboru bez použití příkazu „if“:
Příkaz „test“ lze provést bez příkazu „if“. Zobrazí pouze výstup, pokud soubor existuje; jinak by nebyl žádný výstup:
Napsat skript:
- test -f můjsoubor.txt && echo "soubor byl nalezen"
- [-f můjsoubor.txt] && echo "$ soubor byl nalezen."
- [[-f můjsoubor.txt]] && echo "$ soubor byl nalezen."
Výstup:
Kontrola adresáře bez použití příkazu „if“:
Pomocí níže uvedených příkazů zkontrolujte, zda adresář existuje nebo ne:
- [[-d testDir]] && echo "adresář existuje"
- 2) [-d testDir] && echo "adresář existuje"
Výstup:
Kontrola více souborů / adresářů:
1) Kontrola více souborů pomocí příkazů „if“:
Místo použití vnořených příkazů „if / else“ použijte příznak „-a“ ke kontrole existence různých souborů:
pokud [-f nový_soubor.txt -a -f novýsoubor.txt]; pak
"Oba soubory existují."
fi
Další způsob je:
#!/ bin / bashpokud [[-f nový_soubor.txt && -f novýsoubor.txt]]; pak
"Oba soubory existují."
fi
Výstup:
2) Kontrola více souborů bez použití příkazu „if“:
Pomocí následujícího příkazu můžete zkontrolovat více souborů současně 1 bez použití „if“:
- [[-f nový_soubor.txt && -f novýsoubor.txt]] && echo „Oba soubory jsou ukončeny.“
- [[-f nový_soubor.txt && -f novýsoubor.txt]] && echo „Oba soubory jsou ukončeny.“
Výstup:
Závěr:
Tento článek ukázal, jak používat skriptování bash ke kontrole souboru nebo adresáře. K ověření dostupnosti souboru jsme použili různé možnosti. Nejprve použijeme příkaz „test“ s různými příznaky. Poté jsme se naučili používat „if“, vnořené „if-else“ a bez příkazů „if“ ke kontrole souboru nebo adresáře. Podívali jsme se také na to, jak zkontrolovat více souborů nebo adresářů.