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