L'objectiu d'aquesta guia és discutir l'existència d'un fitxer al vostre sistema mitjançant scripts bash:
Com comprovar l'existència de fitxers mitjançant scripts bash:
1) En introduir el nom del fitxer al terminal:
En primer lloc, hem de crear un fitxer script bash, utilitzeu l'ordre esmentada a continuació:
$tocartestfile.sh
El nom del fitxer que he creat és testfile.sh, l'extensió .sh indica el fitxer de script de l'intèrpret d'ordres:
Obriu testfile.sh en qualsevol editor de text. A continuació, escriviu el guió i deseu-lo prement Desa.
Una manera és trobar un fitxer demanant un nom de fitxer a l'usuari al terminal.
Ús -f per comprovar l’existència del fitxer.
Escriviu el següent script:
#! / bin / bashtrobo 'Introduïu el vostre nom de fitxer'
llegirfitxer nou1
si [ -f '$ fitxer nou1' ]
llavors
trobo 'S'ha trobat l'arxiu'
en cas contrari
trobo 'El fitxer no s'ha trobat'
ser
Torneu al terminal i executeu el fitxer per imprimir la sortida:
./filename.shEl missatge denegat de permís es mostrarà al terminal.
Feu-lo executable executant l'ordre esmentada a continuació:
$chmod+ X testfile.sh
Introduïu el nom del fitxer i imprimirà la sortida:
2) Introduint el nom del fitxer mentre escriviu el script:
Una altra manera de trobar un fitxer donant el nom del fitxer mentre escriviu el script. Tenim tres maneres de comprovar la disponibilitat del fitxer. El primer utilitza l'ordre test, el segon utilitza if amb una expressió entre claudàtors i el tercer també inclou si, però dobles claudàtors, tal com s'indica a continuació:
- prova EXPRESSIÓ.
- si [EXPRESSIÓ]
- si [[EXPRESSION]]
Ho entenem amb exemples:
1) prova [Expressió]
Copieu l'script donat i enganxeu-lo a l'editor, deseu-lo:
nom de l'arxiu= fitxer1
si prova -f '$ nom de fitxer';
llavors
trobo '$ fitxerha trobat. '
en cas contrari
trobo '$ fitxerno s'ha trobat '
ser
Sortida:
Com que no hi ha cap fitxer al meu directori, per tant, el codi mostra el missatge Fitxer no es troba.
2) si [Expressió]
Copieu el següent script per comprovar si el fitxer existeix o no:
#! / bin / bashnom de l'arxiu= myfile.txt
si [ -f '$ nom de fitxer' ];
llavors
trobo '$ nom de fitxerha trobat. '
en cas contrari
trobo 'no s'ha trobat el nom del fitxer'
ser
Sortida:
3) si [[Expressió]]
Copieu l'script escrit a continuació i enganxeu-lo al terminal:
#! / bin / bashnom de l'arxiu= fitxer de prova
si [[ -f '$ nom de fitxer' ]];
llavors
trobo '$ nom de fitxerha trobat. '
en cas contrari
trobo '$ nom de fitxerno s'ha trobat '
ser
Sortida:
Per comprovar el directori:
3) Introduint el nom del directori mentre escriviu un script
Utilitzar el -d flag per comprovar l'existència d'un directori.
A l'script esmentat a continuació, dir11 és la variable en què emmagatzemeu el fitxer la que esteu trobant; en aquest exemple, vull comprovar el nom del directori testDir existeix o no.
#! / bin / bashdir11= testDir
si [ -d '$ dir11' ]
llavors
trobo 'El directori s'ha trobat'
en cas contrari
trobo 'El directori no s'ha trobat'
ser
Sortida:
2) En introduir el nom del fitxer al terminal:
Quan executeu l'ordre al terminal per comprovar si el directori existeix o no, haureu d'introduir el nom del directori que esteu cercant:
trobo 'escriviu el nom del directori.'
llegirDir1
si [ -d 'Dir1' ]
llavors
trobo 'directori s'ha trobat'
en cas contrari
trobo 'directori no s'ha trobat'
ser
Sortida:
Comprovació del fitxer sense utilitzar la sentència if:
L'ordre test es pot executar sense la sentència if. Només mostrarà la sortida si el fitxer existeix; altrament, no hi hauria sortida:
Escriure un guió:
- prova -fmyfile.txt&& trobo 's'ha trobat el fitxer'
- [ -fmyfile.txt] && trobo '$ fitxers'ha trobat. '
- [[ -fmyfile.txt]] && trobo '$ fitxers'ha trobat. '
Sortida:
Comprovació del directori sense utilitzar la sentència if:
Utilitzeu les declaracions esmentades a continuació per comprovar que existeix o no un directori:
- [[ -dtestDir]] && trobo 'directori existeix'
- 2) [ -dtestDir] && trobo 'directori existeix'
Sortida:
Comprovació de diversos fitxers / directoris:
1) Comprovació de diversos fitxers amb sentències if:
Utilitzeu el senyalador -a per comprovar l'existència de diversos fitxers en lloc d'utilitzar instruccions imbricades if / else:
si [ -ffitxer_nou.txt-a -ffitxer nou.txt];llavors
trobo 'Els dos fitxers existeixen.'
ser
Una altra forma és:
#! / bin / bashsi [[ -ffitxer_nou.txt&& -ffitxer nou.txt]];llavors
trobo 'Els dos fitxers existeixen.'
ser
Sortida:
2) Comprovació de diversos fitxers sense utilitzar la sentència if:
Utilitzeu la declaració següent per comprovar diversos fitxers simultàniament 1 sense utilitzar if:
- [[ -ffitxer_nou.txt&& -ffitxer nou.txt]] && troboAmbdós fitxers surten.
- [[ -ffitxer_nou.txt&& -ffitxer nou.txt]] && troboAmbdós fitxers surten.
Sortida:
Conclusió:
Aquest article ha mostrat com utilitzar scripts bash per comprovar un fitxer o un directori. Hem utilitzat diferents opcions per comprovar la disponibilitat d’un fitxer. En primer lloc, fem servir l'ordre test amb diferents senyaladors. Després vam aprendre l’ús de if, imbricat if-else i sense les sentències if per comprovar el fitxer o el directori. També vam examinar la manera de comprovar diversos fitxers o directoris.