L'obiettivo di questa guida è discutere l'esistenza di un file nel tuo sistema attraverso lo scripting bash:
Come verificare l'esistenza del file utilizzando lo script bash:
1) Inserendo il nome del file nel terminale:
Innanzitutto, dobbiamo creare un file di script bash, utilizzare il comando indicato di seguito:
$ touch file di prova.shIl nome del file che ho creato è "testfile.sh", il ".sh" indica il file di script della shell:
Apri il "file di prova.sh" in qualsiasi editor di testo. Quindi scrivi lo script, salvalo premendo “salva”.
Un modo è trovare un file chiedendo un nome file all'utente nel terminale.
Uso "-f” per verificare l'esistenza del file.
Scrivi lo script qui sotto:
#!/bin/bashecho "Inserisci il nome del tuo file"
leggi nuovofile1
if [ -f "$nuovofile1" ]
poi
echo "File trovato"
altro
echo "File non trovato"
fi
Torna al terminale ed esegui il file per stampare l'output:
./nome del file.shIl messaggio di autorizzazione negata verrebbe visualizzato nel terminale.
Rendilo eseguibile eseguendo il comando indicato di seguito:
$chmod +x file di prova.sh
Inserisci il nome del file e stamperà l'output:
2) Inserendo il nome del file durante la scrittura dello script:
Un altro modo per trovare un file dando il nome del file durante la scrittura dello script. Abbiamo tre modi per verificare la disponibilità del file. Il primo sta usando il comando "test", il secondo sta usando "if" con un'espressione tra parentesi quadre, e il terzo è anche con "if" ma doppie parentesi quadre come indicato di seguito:
- “prova ESPRESSIONE."
- “se [ESPRESSIONE]”
- “se [[ ESPRESSIONE ]]”
Capiamolo con degli esempi:
1) prova [ Espressione ]
Copia lo script dato e incollalo nell'editor, salvalo:
nomefile=file1
if test -f "$nomefile";
poi
echo "$file ha trovato."
altro
echo "$file non è stato trovato"
fi
Produzione:
Poiché non esiste un file di questo tipo nella mia directory, il codice visualizza il messaggio "File non trovato".
2) se [ Espressione ]
Copia il seguente script per verificare se il file esiste o meno:
#!/bin/bashnomefile=miofile.TXT
if [ -f "$nomefile" ];
poi
echo "$nomefile ha trovato."
altro
echo "il nome del file non è stato trovato"
fi
Produzione:
3) se [[ Espressione ]]
Copia lo script scritto di seguito e incollalo sul terminale:
#!/bin/bashnome file=file di prova
if [[ -f "$nomefile" ]];
poi
echo "$nomefile ha trovato."
altro
echo "$nomefile non è stato trovato"
fi
Produzione:
Per controllare la directory:
3) Inserendo il nome della directory durante la scrittura di uno script
Usa il "-d” flag per verificare l'esistenza di una directory.
Nello script sottostante, “dir11” è la variabile in cui memorizzi il file che stai trovando; in questo esempio, voglio controllare che il nome della directory "testDir" esista o meno.
#!/bin/bashdir11=testDir
if [ -d "$dir11" ]
poi
echo "La directory ha trovato"
altro
echo "La directory non è stata trovata"
fi
Produzione:
2) Inserendo il nome del file nel terminale:
Quando esegui il comando nel terminale per verificare se la directory esiste o meno, ti viene richiesto di inserire il nome della directory che stai cercando:
echo "digita il nome della tua directory."
leggi Dir1
if [ -d "Dir1" ]
poi
echo "la directory è stata trovata"
altro
echo "directory non trovata"
fi
Produzione:
Controllo del file senza utilizzare l'istruzione "if":
Il comando "test" può essere eseguito senza l'istruzione "if". Visualizzerà l'output solo se il file esiste; altrimenti, non ci sarebbe alcun output:
Scrivi la sceneggiatura:
- test -f miofile.txt && echo "il file è stato trovato"
- [ -f miofile.txt ] && echo "$file è stato trovato."
- [[ -f miofile.txt ]] && echo "$file è stato trovato."
Produzione:
Controllo della directory senza utilizzare l'istruzione "if":
Utilizzare le istruzioni sotto menzionate per verificare che una directory esista o meno:
- [[ -d testDir ]] && echo "la directory esiste"
- 2) [ -d testDir ] && echo "la directory esiste"
Produzione:
Controllo di più file/directory:
1) Controllo di più file con istruzioni "if":
Utilizzare il flag "-a" per verificare l'esistenza di vari file invece di utilizzare istruzioni "if/else" annidate:
if [ -f nuovo_file.txt -a -f nuovo file.TXT ]; poi
echo "Esistono entrambi i file."
fi
Un altro modo è:
#!/bin/bashif [[ -f nuovo_file.txt && -f nuovo file.TXT ]]; poi
echo "Esistono entrambi i file."
fi
Produzione:
2) Controllo di più file senza utilizzare l'istruzione "if":
Utilizzare la seguente istruzione per controllare più file contemporaneamente 1 senza utilizzare "if":
- [[ -f nuovo_file.txt && -f nuovo file.txt ]] && echo “Entrambi i file escono."
- [[ -f nuovo_file.txt && -f nuovo file.txt ]] && echo “Entrambi i file escono."
Produzione:
Conclusione:
Questo articolo ha mostrato come usare gli script bash per controllare un file o una directory. Abbiamo utilizzato diverse opzioni per verificare la disponibilità di un file. In primo luogo, usiamo il comando "test" con diversi flag. Quindi abbiamo imparato l'uso di "if", "if-else" annidato e senza le istruzioni "if" per controllare il file o la directory. Abbiamo anche esaminato come controllare più file o directory.