Programmazione BASH

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

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

Mentre si lavora con i file in qualsiasi sistema operativo, è obbligatorio per l'utente testare tali file per determinati aspetti come la loro proprietà, diritti di accesso, contenuto, esistenza, ecc. Questi aspetti possono essere capiti accoppiando l'istruzione "if" con vari operatori di test di file in Bash. Gli "if -e" e "if -s" sono tali operatori in Bash, utilizzati per testare l'esistenza di un file. La differenza tra i due è che il primo verifica solo l'esistenza di un file, mentre il secondo verifica anche se ci sono contenuti in quel file o meno. Oggi proveremo a capire l'uso di questi due operatori, insieme ad alcuni altri operatori di test dei file in Bash.

Nota: per dimostrare l'utilizzo degli operatori di test dei file in Bash, abbiamo utilizzato Linux Mint 20.

Esempi di utilizzo di operatori di test di file in Bash

Esistono diversi modi in cui è possibile utilizzare gli operatori di test del file "if -e" e "if -s". Per spiegare il loro utilizzo, condivideremo alcuni esempi con te.

Esempio di utilizzo dell'operatore "if -e"

Per utilizzare l'operatore "if -e" in Bash, è necessario seguire questi passaggi:

Per prima cosa, abbiamo creato un file di testo vuoto chiamato Test.txt nella nostra directory Home. Quindi abbiamo creato un file bash chiamato FileTestOperators.sh nella stessa directory. Dopo aver creato questo file, abbiamo digitato lo script mostrato nell'immagine seguente nel nostro file. In questo script bash, ha dichiarato una variabile denominata "file" e le ha assegnato il nostro file di testo denominato Test.txt come suo valore. Quindi abbiamo un'istruzione "if -e", che produce un output "vero" se esiste un file specificato.

Per testare il nostro script, lo eseguiremo utilizzando il comando indicato di seguito:

$ bash FileTestOperators.sh

Nel nostro caso, poiché il file di testo esisteva, ecco perché l'output del nostro script sarà vero, come mostrato nell'immagine seguente:

Esempio di utilizzo dell'operatore "if -s"

Per utilizzare l'operatore "if -s" in Bash, è necessario eseguire i passaggi elencati di seguito:

Per questo esempio, il nostro script bash è lo stesso che abbiamo usato sopra. Abbiamo appena cambiato l'istruzione "if -e" in "if -s". Inoltre, abbiamo utilizzato lo stesso file di testo vuoto Test.TXT.

Ora, quando eseguiamo questo script, l'output sarà falso perché l'operatore "if -s" restituisce vero se esiste un file e anche se non è vuoto. Poiché nel nostro caso, sebbene il file esistesse, era ancora vuoto, ecco perché il nostro output si è rivelato falso come mostrato nell'immagine seguente:

Per rendere vero questo flag, scriveremo del testo fittizio nel nostro file di testo, come mostrato di seguito:

Quindi eseguiamo di nuovo il nostro script bash e questa volta l'output sarà vero, come mostrato nell'immagine seguente perché il file di testo ora contiene del testo.

Esempi di utilizzo di altri operatori di test dei file

Oltre agli operatori "if -e" e "if -s", esistono anche altri operatori di test dei file. Di seguito condivideremo con voi alcuni dei più importanti operatori di test di file diversi da quelli discussi sopra.

Esempio di utilizzo dell'operatore "if -d"

Per utilizzare l'operatore "if -d" in Bash, è necessario eseguire i passaggi elencati di seguito:

Per questo esempio, il nostro script bash è lo stesso che abbiamo usato sopra. Abbiamo appena cambiato l'istruzione "if -s" in "if -d". Inoltre, abbiamo utilizzato lo stesso file di testo Test.TXT.

L'operatore "if -d" restituisce vero se il tuo file è una directory, altrimenti sarà falso. Poiché il nostro file di testo non era una directory, quindi, l'output sarà falso, come mostrato nell'immagine seguente:

Esempio di utilizzo dell'operatore "if -h"

Per utilizzare l'operatore "if -h" in Bash, è necessario seguire questi passaggi:

Per questo esempio, il nostro script bash è lo stesso che abbiamo usato sopra. Abbiamo appena cambiato l'istruzione "if -d" in "if -h". Tuttavia, questa volta abbiamo utilizzato un file diverso per il test, che in effetti era un collegamento simbolico denominato NewBash.sh.

L'operatore "if -h" restituisce vero se il tuo file è un collegamento simbolico, altrimenti sarà falso. Poiché il nostro file di test era un collegamento simbolico, quindi, l'output sarà vero, come mostrato nell'immagine seguente:

Esempio di utilizzo dell'operatore "if -r"

Per utilizzare l'operatore "if -r" in Bash, è necessario seguire questi passaggi:

Per questo esempio, il nostro script bash è lo stesso che abbiamo usato sopra. Abbiamo appena cambiato l'istruzione "if -h" in "if -r". Inoltre, abbiamo utilizzato lo stesso file di testo Test.TXT.

L'output dell'operatore "if -r" sarà vero se l'utente corrente può leggere il file, altrimenti sarà falso. Poiché il nostro file di testo era leggibile da noi, quindi, l'output sarà vero, come mostrato nell'immagine seguente:

Allo stesso modo, puoi usare gli operatori "if -w" e "if -x" per verificare se un file è scrivibile ed eseguibile rispettivamente dall'attuale proprietario.

Esempio di utilizzo dell'operatore "if -O"

Per utilizzare l'operatore "if -O" in Bash, è necessario eseguire i passaggi elencati di seguito:

Per questo esempio, il nostro script bash è lo stesso che abbiamo usato sopra. Abbiamo appena cambiato l'istruzione "if -r" in "if -O". Inoltre, abbiamo utilizzato lo stesso file di testo Test.TXT.

L'output dell'operatore "if -O" sarà vero se l'utente corrente possiede il file, altrimenti sarà falso. Poiché il nostro file di testo era di nostra proprietà, quindi, l'output sarà vero come mostrato nell'immagine seguente:

Conclusione

Questo articolo ha informato il lettore sull'utilizzo dei diversi operatori di test dei file in Bash utilizzando il sistema operativo Linux. Facendo uso di questi operatori di test dei file, diventa molto conveniente per l'utente lavorare con i file senza potenziali difficoltà. Ci sono anche altri operatori di test dei file, che possono essere usati per scopi diversi Tuttavia, quelli discussi in questo articolo sono quelli piùcomunemente usati.

Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...