Bash se -e e -s e altri operatori di test dei file

Bash se -e e -s e altri operatori di test dei file
Nei file Linux, gli operatori di prova vengono utilizzati per verificare gli attributi associati a un file come: l'autore del file, i diritti amministrativi e la proprietà del file e per verificare se sono o meno. Quando abbiamo a che fare con i file, diventa necessario verificare la loro esistenza e se contengono o meno contenuti a tale scopo; o se viene utilizzata un'istruzione insieme agli operatori di prova.

Anche gli operatori di test di file in bash vengono utilizzati per testare i file come spiega il nome. Con l'aiuto di questi operatori, possiamo testare diversi aspetti di un file come se quel file è solo scrivibile o leggibile. Esistono molti operatori di test dei file e ognuno ha un ruolo e un uso diverso. Gli operatori di test di file ci aiutano a prevenire errori durante lo script in bash. Per eseguire tale attività, utilizziamo un'istruzione IF-ELSE. L'istruzione IF-ELSE funge da strumento molto utile per la gestione degli errori negli script bash.

Lo scopo dell'operatore "-e" è di dirci se esiste un file nella directory specificata o meno. L'operatore "-s" ci dice che il file non è una dimensione zero, il che significa che questo operatore ci dice se il file nella directory specificata contiene o meno dati. Altri operatori sono abituati a gestire i file ma "-e" e "-s" sono i più importanti e vengono spesso utilizzati.

Come utilizzare gli operatori di test:

In questa illustrazione, proveremo a utilizzare tutti gli operatori di test per eseguire varie attività sui file.

Esempio n. 1: usando l'operatore di testo IF -e

In questo esempio, proveremo a utilizzare l'operatore di test IF -E che viene utilizzato principalmente per verificare se il file esiste in una directory o meno. Ora creeremo prima un nuovo file.

Linux@Linux-Virtualbox: ~ $ nano testoperator.sh

Quando eseguiamo il comando sopra, aprirà il file vuoto ora scriveremo il codice in cui creeremo una condizione che il file "dipendente.esistente txt "visualizzerà il comando echo che contiene il messaggio" Il file esiste ". Altrimenti, eseguirà il messaggio "Il file non esiste". Il testoperatore del file conterrà il contenuto menzionato di seguito.

#!/bin/sh
file = "dipendente.TXT"
if [-e $ file]
Poi
Echo "File esiste"
altro
echo "il file non esiste"
fi

Dopo aver salvato il file utilizzando il comando bash, eseguiremo il comando di seguito che eseguirà il testoperatore.file sh.

Linux@Linux-VirtualBox: ~ $ Bash Tesoperator.sh

Quando eseguiamo il comando sopra, leggerà il codice del file testoperator che esegue e verifica il file nella directory home. In questo caso, non abbiamo alcun file nella directory, quindi ha eseguito l'output di seguito.

Produzione:

il file non esiste

Ora creeremo prima un nuovo file chiamato "dipendente.TXT". Quindi, esegui nuovamente il comando per verificare se rileverà il file o meno. Come mostrato di seguito, questa volta il file esiste nella home directory.

Ora, eseguiamo di nuovo il comando sopra. Questa volta, visualizza l'output che viene mostrato di seguito in cui il messaggio "file esiste".

Produzione:

il file esiste

Esempio n. 2: Utilizzo dell'operatore di testo IF -D

In questo esempio, proveremo un altro operatore di prova che è l'operatore "-D" che viene utilizzato per verificare se il file che stiamo verificando è una directory o no. Questa volta, creeremo una nuova directory che abbiamo chiamato "dipendente", come si può vedere nello snippet di seguito.

Ora modificheremo il "testoperatore.file sh "in cui cambieremo il nome del file" dipendente.txt "per solo" dipendente ". Quindi, passando l'operatore "-D" nell'istruzione IF insieme al "file $" che verrà recuperato. E modificando il messaggio, che verrà visualizzato come output, salveremo il file. Ora, il "testoperatore.Il file sh "contiene il seguente contenuto.

#!/bin/sh
file = "dipendente"
if [-d $ file]
Poi
Echo "Il dipendente è una directory"
altro
Echo "Il dipendente non è una directory"
fi

Dopo aver modificato il "testoperatore.sh ", eseguiremo il comando bash insieme al nome del file:

Linux@Linux-VirtualBox: ~ $ Bash Tesoperator.sh

Quando il comando sopra esegue, visualizzerà l'output mostrato di seguito in cui stampa il messaggio che è:

Produzione:

Il dipendente è una directory

Esempio n. 3: usando l'operatore di testo IF -s

In questo esempio, proveremo a utilizzare l'operatore "-s" che viene utilizzato per verificare se il file contiene o meno contenuti. Per questo, useremo il file già creato che abbiamo usato nell'esempio 1 chiamato "dipendente.TXT". Per prima cosa modifichiamo il testoperatore del file.SH in cui passeremo l'opzione "-s" insieme al nome del file alla nostra istruzione IF e assegneremo il file "dipendente.TXT". Inoltre, cambierà il messaggio che verrà visualizzato come output.

#!/bin/sh
file = "dipendente.TXT"
if [-d $ file]
Poi
Echo "dipendente.txt è vuoto "
altro
Echo "dipendente.txt non è vuoto "
fi

Ora salveremo e chiuderemo il file "Tesoperator.sh "ed eseguire il comando menzionato di seguito nel terminale.

Linux@Linux-VirtualBox: ~ $ Bash Tesoperator.sh

Quando il comando sopra viene eseguita, eseguirà l'istruzione else perché il dipendente.txt contiene il contenuto. Quindi, ignora il comando Echo dell'istruzione allora.

Produzione:

dipendente.txt non è vuoto

Ora rimuoveremo il contenuto dal "dipendente.txt ”e quindi eseguire di nuovo il comando. Quando il comando sopra viene nuovamente eseguito, visualizza il messaggio delle istruzioni perché non contiene alcun contenuto in esso. L'esempio seguente è l'output del comando che abbiamo eseguito dopo aver eliminato il contenuto del file.

Produzione:

dipendente.txt è vuoto

Esempio n. 4: Utilizzo dell'operatore di testo IF -r

In questo esempio, implementeremo un altro operatore di test che è "-r". Questo operatore viene utilizzato per verificare se il file è leggibile all'utente o meno. Per questo, modificheremo il testoperatore.file txt sostituendo l'operatore "-d" con "-r". Modificherà anche il messaggio di output che è se il file è leggibile. Visualirà il messaggio "dipendente.txt è leggibile e se il file non è leggibile, visualizzerà l'istruzione else. Ora, il "testoperatore.txt "contiene il seguente contenuto:

#!/bin/sh
file = "dipendente.TXT"
if [-r $ file]
Poi
Echo "dipendente.txt è leggibile "
altro
Echo "dipendente.txt è leggibile "
fi

Ora eseguiremo il comando di seguito per eseguire il codice scritto al suo interno.

Linux@Linux-VirtualBox: ~ $ Bash Tesoperator.sh

Dopo aver eseguito il comando sopra, l'output visualizzato di seguito verrà stampato sul terminale.

Produzione:

dipendente.txt è leggibile

Conclusione

Abbiamo discusso della parte più importante del sistema di archiviazione, gli operatori di prova. Mentre lavorano con i file, gli operatori di prova sono l'utilità più essenziale fornita dai pacchetti Linux. Dopo aver introdotto lo scopo degli operatori di test, li abbiamo spiegati implementando questi operatori in vari esempi.