Paano Suriin kung May File o Direktoryo sa isang Bash Shell Script

Sinusuri kung may file o direktoryo mula sa isang Bash script

Ginagamit ang Bash para sa pag-automate ng mga regular na execute na command sa Linux. Ang mga utos na para sa mga pagpapatakbo sa mga file/direktoryo ay kadalasang ginagamit, at kadalasan, bago natin isagawa ang naturang utos, kailangan nating suriin kung ang partikular na file o direktoryo ay umiiral. Tingnan natin kung paano isasagawa ang pagsusuring ito.

Syntax at Paggamit

Mga file

Upang suriin kung mayroong isang file, gamitin ang sumusunod na syntax:

[ -f ]

Ang ekspresyon [ -f ] nagbabalik ng 0, ibig sabihin, tagumpay kung ay umiiral, at kung hindi ito umiiral, ito ay nagbabalik ng isang hindi zero na katayuan. Karaniwan, ito ay ginagamit bilang isang kondisyon sa kung pahayag.

kung [ -f ] pagkatapos fi

Upang balewalain ang ibinalik na halaga, unahan lang ang -f na may negation operator (!).

kung [ ! -f ] pagkatapos fi

Sa kasong ito, masisiyahan ang kundisyon kung ang file ay wala, dahil ang ibinalik na hindi zero na status (false) ay tatanggalin at ituturing bilang 0 (true).

Tandaan na kung ang file na susuriin ay hindi umiiral sa kasalukuyang direktoryo at umiiral sa ibang direktoryo, ang buong path ng file ay dapat na banggitin sa halip na ang filename lamang.

Mga direktoryo

Ang katulad na syntax na ginagamit para sa pagsuri ng mga file ay ginagamit para sa pagsuri sa mga direktoryo.

[ -d ]

Katulad ng pahayag para sa mga file, ang pahayag na ito ay nagbabalik ng 0, ibig sabihin, tagumpay, kung ang direktoryo umiiral, at isang hindi zero, ibig sabihin, ang katayuan ng pagkabigo ay ibinalik kung hindi ito umiiral. Ito ay karaniwang ginagamit din sa isang kung kondisyon ng pahayag.

kung [ -d ] pagkatapos fi

Upang balewalain ang ibinalik na katayuan, unahan ang -d na may negation operator (!).

kung [ ! -d ] pagkatapos ay fi

Ang kundisyon ay masisiyahan (status 0) sa kasong ito kung ang direktoryo ay hindi umiiral, at mabibigo (status non zero) kung ang direktoryo ay umiiral.

Tulad ng nabanggit dati para sa mga file, kung ang direktoryo na susuriin ay umiiral sa ibang lokasyon at hindi ang kasalukuyang direktoryo, ang buong path ng direktoryo ay kailangang ilagay sa halip na ang pangalan ng direktoryo lamang.

💡 Ang bracket syntax ( [...] ) na ginagamit dito ay talagang isang Linux command na tinatawag pagsusulit. Ang mga pagpipilian -f at -d ay ang mga tampok ng utos na ito. Para sa higit pang impormasyon, tingnan ang manu-manong pahina ng pagsubok ( pagsubok ng tao ).

Suriin mula sa isang Bash Script

Sa mga halimbawa sa itaas, ginamit namin ang mga syntax nang direkta sa terminal. Ang shell sa tuwing makakatagpo ito ng loop, o conditional statement (kung sa aming kaso), ipinagpatuloy nito ang prompt at hinahayaan ang user na ipasok ang continue the block.

Ang parehong mga syntax ay maaaring gamitin mula sa loob ng isang Bash script.

Ang #!/bin/bash sa simula ay tumutukoy sa interpreter na gagamitin kapag ang file ay naisakatuparan. Bagama't ang Bash ang pinakakaraniwang ginagamit na shell ngayon, mas gusto ng ilang user ang mga shell na tulad nito zsh, na dapat tukuyin bilang kapalit ng bash sa simula ng file na ito.

Upang magbigay ng mga pahintulot sa pagpapatupad para sa file na ito, patakbuhin ang:

chmod +x test.sh

Sa wakas, upang maisagawa ang file, tumakbo:

./test.sh