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:
$toccofileprova.sh
Il nome del file che ho creato è testfile.sh, l'estensione .sh indica il file script della shell:
Apri testfile.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.
Utilizzo -F per verificare l'esistenza del file.
Scrivi lo script qui sotto:
#!/bin/bashbuttato fuori 'Inserisci il nome del tuo file'
leggerenuovofile1
Se [ -F '$nuovofile1' ]
poi
buttato fuori 'File trovato'
altro
buttato fuori 'File non trovato'
essere
Torna al terminale ed esegui il file per stampare l'output:
./nomefile.shIl messaggio di autorizzazione negata verrebbe visualizzato nel terminale.
Rendilo eseguibile eseguendo il comando indicato di seguito:
$chmod+ x fileprova.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 fornendo il nome del file durante la scrittura dello script. Abbiamo tre modi per verificare la disponibilità del file. Il primo utilizza il comando test, il secondo utilizza if con un'espressione tra parentesi quadre e il terzo utilizza anche 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:
nome del file=file1
Se test -F '$nomefile';
poi
buttato fuori '$fileha trovato.'
altro
buttato fuori '$filenon è stato trovato'
essere
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/bashnome del file=miofile.txt
Se [ -F '$nomefile' ];
poi
buttato fuori '$nomefileha trovato.'
altro
buttato fuori 'il nome del file non è stato trovato'
essere
Produzione:
3) se [[ Espressione ]]
Copia lo script scritto di seguito e incollalo sul terminale:
#!/bin/bashnome del file=file di prova
Se [[ -F '$nomefile' ]];
poi
buttato fuori '$nomefileha trovato.'
altro
buttato fuori '$nomefilenon è stato trovato'
essere
Produzione:
Per controllare la directory:
3) Inserendo il nome della directory durante la scrittura di uno script
Utilizzare 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
Se [ -D '$dir11' ]
poi
buttato fuori 'La directory ha trovato'
altro
buttato fuori 'La directory non è stata trovata'
essere
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:
buttato fuori 'digita il nome della directory.'
leggereDir1
Se [ -D 'Dir1' ]
poi
buttato fuori 'la directory è stata trovata'
altro
buttato fuori 'directory non trovata'
essere
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 -Fmiofile.txt&& buttato fuori 'il file è stato trovato'
- [ -Fmiofile.txt] && buttato fuori '$fileè stato trovato.'
- [[ -Fmiofile.txt]] && buttato fuori '$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:
- [[ -DtestDir]] && buttato fuori 'la directory esiste'
- 2) [ -DtestDir] && buttato fuori '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 nidificate:
Se [ -Fnuovo_file.txt-a -Fnuovofile.txt];poi
buttato fuori 'Esistono entrambi i file.'
essere
Un altro modo è:
#!/bin/bashSe [[ -Fnuovo_file.txt&& -Fnuovofile.txt]];poi
buttato fuori 'Esistono entrambi i file.'
essere
Produzione:
2) Controllo di più file senza utilizzare l'istruzione if:
Utilizzare la seguente istruzione per controllare più file contemporaneamente 1senza utilizzare if:
- [[ -Fnuovo_file.txt&& -Fnuovofile.txt]] && buttato fuoriEntrambi i file escono.
- [[ -Fnuovo_file.txt&& -Fnuovofile.txt]] && buttato fuoriEntrambi i file escono.
Produzione:
Conclusione:
Questo articolo ha mostrato come utilizzare 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 nidificato e senza le istruzioni if per controllare il file o la directory. Abbiamo anche esaminato come controllare più file o directory.