Mange ganger når du skriver Shell-skript, kan du komme i en situasjon der du trenger å utføre en handling basert på om en fil eksisterer eller ikke .
I Bash kan du bruke testkommandoen til å sjekke om en fil eksisterer og bestemme typen av fil.
Testkommandoen har en av følgende syntaksformer:
 Hvis du vil at skriptet ditt skal være bærbart, bør du foretrekke å bruke den gamle testen ; then echo "$FILE exists."fi  
Hvis du vil utføre en annen handling basert på om filen eksisterer eller ikke bare bruk if / then-konstruksjonen:
 Du kan også bruke testkommandoen uten if-setningen. Kommandoen etter && operatøren vil bare kjøres hvis utgangsstatusen til testkommandoen er sann, 
 Hvis du vil kjør en serie med kommandoer etter && operatøren bare legge kommandoene i krøllete parenteser atskilt med ; eller &&: 
 Motsatt til &&, uttalelsen etter || operatør vil bare bli utført hvis utgangsstatusen for testkommandoen er false. 
Sjekk om katalogen eksisterer #
 Operatørene -d lar deg teste om en fil er en katalog eller ikke. 
 For eksempel for å sjekke om /etc/docker katalogen du vil bruke: 
 Du kan også bruke de dobbelte parentesene ; then echo "$FILE does not exist."fi  
Samme som ovenfor:
Sjekk om flere filer eksisterer #
 I stedet for å bruke kompliserte nestede hvis / annet-konstruksjoner, kan du bruke -a (eller && med ; then echo "Both files exist."fi  
Tilsvarende varianter uten å bruke IF-setningen:
Filtestoperatører #
Testkommandoen inkluderer følgende FILE-operatører som lar deg teste for bestemte typer filer:
-  
-bFILE– Sant hvis FILEN eksisterer og er en spesiell blokkfil. -  
-cFILE– True hvis FILEN eksisterer og er en spesialtegnfil. -  
-dFILE– sant hvis FILEN eksisterer og er en katalog. -  
-eFILE– Sant hvis FILEN eksisterer og er en fil, uavhengig av type (node, katalog, stikkontakt osv.). -  
-fFILE– Sant hvis FILEN eksisterer og er en vanlig fil (ikke en katalog eller enhet). -  
-GFILE– Sant hvis FILEN eksisterer og har samme gruppe som brukeren som kjører kommandoen. -  
-hFILE– Sant hvis FILEN eksisterer og er en symbolsk lenke. -  
-gFILE– Sant hvis FILEN eksisterer og har set-group-id (sgid) flaggsett. -  
-kFILE– Sann hvis FILEN eksisterer og har et klebrig bitflagg satt. -  
-L– Sant hvis FILEN eksisterer og er en symbolsk lenke. -  
-OFILE– Sant hvis FILEN eksisterer og eies av brukeren som kjører kommandoen. -  
-pFILE– Sant hvis FILEN eksisterer og er et rør. -  
-rFILE– Sant hvis FILEN eksisterer og er lesbar. -  
-SFILE– Sant hvis FILEN eksisterer og er en stikkontakt. -  
-sFILE– Sann hvis FILEN eksisterer og har en null-størrelse. -  
-uFILE– Sant hvis FILEN eksisterer, og set-user-id (suid) flagg er satt. -  
-wFILE– Sant hvis FILEN eksisterer og er skrivbar. -  
-xFILE– Sant hvis FILEN eksisterer og er exe kuttbar. 
Konklusjon #
I denne guiden har vi vist deg hvordan du sjekker om en fil eller katalog finnes i Bash.