Kaip patikrinti, ar „Bash Shell“ scenarijuje yra failas arba katalogas

Tikrinama, ar iš Bash scenarijaus yra failas arba katalogas

„Bash“ naudojamas automatizuoti reguliariai vykdomas komandas „Linux“. Komandos, skirtos operacijoms su failais/katalogais, naudojamos gana dažnai ir paprastai prieš vykdydami tokią komandą turime patikrinti, ar konkretus failas ar katalogas egzistuoja. Pažiūrėkime, kaip atlikti šį patikrinimą.

Sintaksė ir naudojimas

Failai

Norėdami patikrinti, ar failas yra, naudokite šią sintaksę:

[-f]

Išsireiškimas [-f] grąžina 0, t.y. sėkmės, jei egzistuoja, o jei jo nėra, ji grąžina ne nulinę būseną. Paprastai tai naudojama kaip sąlyga jeigu pareiškimas.

jei [ -f ] tada fi

Norėdami paneigti grąžintą vertę, tiesiog prieš -f su neigimo operatoriumi (!).

jei [! -f ] tada fi

Šiuo atveju sąlyga bus patenkinta, jei failas neegzistuoja, nes grąžinta ne nulinė būsena (klaidinga) bus paneigta ir laikoma 0 (teisinga).

Atminkite, kad jei failas, kurį reikia patikrinti, neegzistuoja dabartiniame kataloge, o yra kitame kataloge, reikia nurodyti visą failo kelią, o ne tik failo pavadinimą.

Katalogai

Katalogams tikrinti naudojama panaši sintaksė kaip ir failams tikrinti.

[-d]

Panašiai kaip ir teiginys failams, šis teiginys grąžina 0, t. y. sėkmės, jei katalogas egzistuoja, o jei jos nėra, grąžinama ne nulis, ty gedimo būsena. Tai taip pat dažnai naudojama an jeigu pareiškimo sąlyga.

jei [ -d ] tada fi

Norėdami paneigti grąžintą būseną, įveskite prieš -d su neigimo operatoriumi (!).

jei [! -d ] tada fi

Sąlyga bus įvykdyta (būsena 0), jei katalogo nėra, ir nepavyks (būsena ne nulis), jei katalogas egzistuoja.

Kaip minėta anksčiau failams, jei tikrintinas katalogas yra kitoje vietoje, o ne dabartiniame kataloge, reikia įvesti visą katalogo kelią, o ne tik katalogo pavadinimą.

💡 Skliaustų sintaksė ( [...] ) čia naudojama „Linux“ komanda bandymas. Parinktys -f ir -d yra šios komandos ypatybės. Daugiau informacijos rasite testo vadovo puslapyje ( vyro testas ).

Patikrinkite iš Bash scenarijaus

Aukščiau pateiktuose pavyzdžiuose sintakses naudojome tiesiai terminale. Apvalkalas, kai susiduria su ciklu arba sąlyginiu teiginiu (jeigu mūsų atveju), jis tęsia raginimą ir leidžia vartotojui įvesti tęsti bloką.

Tos pačios sintaksės gali būti naudojamos „Bash“ scenarijaus viduje.

The #!/bin/bash pradžioje nurodo interpretatorių, kuris bus naudojamas vykdant failą. Nors Bash yra dažniausiai naudojamas apvalkalas, kai kurie vartotojai teikia pirmenybę tokiems apvalkalams kaip zsh, kuris turėtų būti nurodytas vietoje bash šio failo pradžioje.

Suteikti vykdymo leidimus šiam failui paleiskite:

chmod +x test.sh

Pagaliau, failo vykdymui, paleisti:

./test.sh