Tarkista, onko Bash-komentosarjasta tiedosto tai hakemisto olemassa
Bashia käytetään säännöllisesti suoritettavien komentojen automatisointiin Linuxissa. Tiedostojen/hakemistojen operaatioihin tarkoitettuja komentoja käytetään melko usein, ja yleensä ennen tällaisen komennon suorittamista meidän on tarkistettava, onko kyseistä tiedostoa tai hakemistoa olemassa. Katsotaanpa, kuinka tämä tarkistus suoritetaan.
Syntaksi ja käyttö
Tiedostot
Tarkistaaksesi, onko tiedosto olemassa, käytä seuraavaa syntaksia:
[-f]
Ilmaisu [-f]
palauttaa 0, eli onnistuu jos on olemassa, ja jos sitä ei ole, se palauttaa tilan, joka ei ole nolla. Tyypillisesti tätä käytetään ehtona
jos
lausunto.
jos [ -f ] niin fi
Palautetun arvon kumoamiseksi, yksinkertaisesti edeltää -f
negatiivisella operaattorilla (!
).
jos [! -f ] sitten fi
Tässä tapauksessa ehto täyttyy, jos tiedosto ei ole olemassa, koska palautettu nollasta poikkeava tila (false) kumotaan ja sitä pidetään arvona 0 (tosi).
Huomaa, että jos tarkistettavaa tiedostoa ei ole nykyisessä hakemistossa ja se on jossain muussa hakemistossa, tulee mainita tiedoston koko polku pelkän tiedostonimen sijaan.
Hakemistot
Samanlaista syntaksia kuin tiedostojen tarkistamiseen käytetään hakemistojen tarkistamiseen.
[-d]
Samoin kuin käsky tiedostoille, tämä lauseke palauttaa 0, eli onnistumisen, jos hakemisto on olemassa, ja nollasta poikkeava tila palautetaan, jos sitä ei ole olemassa. Tätä käytetään yleisesti myös
jos
lausunnon ehto.
jos [ -d ] niin fi
Jos haluat mitätöidä palautetun tilan, kirjoita ennen -d
negatiivisella operaattorilla (!
).
jos [! -d ] sitten fi
Ehto täyttyy (tila 0) tässä tapauksessa, jos hakemistoa ei ole olemassa, ja epäonnistuu (tila ei ole nolla), jos hakemisto on olemassa.
Kuten aiemmin tiedostojen kohdalla mainittiin, jos tarkistettava hakemisto on toisessa paikassa eikä nykyisessä hakemistossa, on syötettävä koko hakemistopolku pelkän hakemiston nimen sijaan.
💡 Hakasulkeen syntaksi ( [...]
) käytetään tässä itse asiassa Linux-komentoa testata
. Vaihtoehdot -f
ja -d
ovat tämän komennon ominaisuuksia. Katso lisätietoja testin manuaalisivulta ( mies testi
).
Tarkista Bash-skriptistä
Yllä olevissa esimerkeissä olemme käyttäneet syntakseja suoraan päätteessä. Shell aina kun se kohtaa silmukan tai ehdollisen lauseen (jos
meidän tapauksessamme), se jatkaa kehotetta ja antaa käyttäjän jatkaa lohkoa.
Samoja syntakseja voidaan käyttää Bash-skriptin sisältä.
The #!/bin/bash
alussa määrittää tulkin, jota käytetään, kun tiedosto suoritetaan. Vaikka Bash on yleisimmin käytetty kuori nykyään, jotkut käyttäjät pitävät enemmän sellaisista kuorista kuin zsh
, joka tulee määrittää bashin tilalle tämän tiedoston alussa.
Suoritusoikeuksien myöntäminen suorita tälle tiedostolle:
chmod +x test.sh
Lopuksi, suorittaaksesi tiedoston, juosta:
./test.sh