Fokuset i denne veiledningen er å diskutere eksistensen av en fil i systemet ditt gjennom bash scripting:
Hvordan sjekke fileksistensen ved hjelp av bash-skript:
1) Ved å skrive inn filnavnet i terminalen:
For det første må vi lage en bash-skriptfil, bruk kommandoen nedenfor:
$ touch testfil.shNavnet på filen jeg opprettet er “testfile.sh ”,“.utvidelsen sh ”indikerer skallskriptfilen:
Åpne “testfilen.sh ”i hvilken som helst tekstredigerer. Skriv deretter skriptet, lagre det ved å trykke “lagre”.
En måte er å finne en fil ved å be om et filnavn fra brukeren i terminalen.
Bruk "-f”For å sjekke filens eksistens.
Skriv nedenstående skript:
#!/ bin / bashekko "Skriv inn filnavnet ditt"
les nyfil1
hvis [-f "$ newfile1"]
deretter
ekko "Fil er funnet"
ellers
ekko "Filen ble ikke funnet"
fi
Gå tilbake til terminalen og kjør filen for å skrive ut:
./filnavn.shMelding om tillatelse nektet vises i terminalen.
Gjør det kjørbart ved å utføre kommandoen nedenfor:
$ chmod + x testfil.sh
Skriv inn filnavnet, og det vil skrive utdataene:
2) Ved å skrive inn filnavnet mens du skriver skriptet:
En annen måte å finne en fil ved å gi filnavnet mens du skriver skriptet. Vi har tre måter å sjekke tilgjengeligheten av filen på. Den første bruker "test" -kommandoen, den andre bruker "if" med et uttrykk i parentes, og den tredje er også med "if" men doble firkantede parenteser som angitt nedenfor:
- “Test UTTRYKK.”
- “Hvis [EXPRESSION]”
- “Hvis [[UTTRYKK]]”
La oss forstå det med eksempler:
1) test [uttrykk]
Kopier det gitte skriptet og lim det inn i redigeringsprogrammet, lagre det:
filnavn = fil1
hvis test -f "$ filnavn";
deretter
ekko "$ filen har funnet."
ellers
ekko "$ fil ble ikke funnet"
fi
Produksjon:
Siden det ikke er noen slik fil i katalogen min, viser koden meldingen "Filen ble ikke funnet".
2) hvis [uttrykk]
Kopier følgende skript for å sjekke om filen eksisterer eller ikke:
#!/ bin / bashfilnavn = minfil.tekst
hvis [-f "$ filnavn"];
deretter
ekko "$ filnavn har funnet."
ellers
ekko "filnavn er ikke funnet"
fi
Produksjon:
3) hvis [[Uttrykk]]
Kopier det nedskrevne skriptet og lim det inn på terminalen:
#!/ bin / bashfilnavn = testfil
hvis [[-f "$ filnavn"]];
deretter
ekko "$ filnavn har funnet."
ellers
ekko "$ filnavn er ikke funnet"
fi
Produksjon:
Slik sjekker du katalogen:
3) Ved å skrive inn katalognavnet mens du skriver et skript
Bruke "-d”Flagg for å kontrollere eksistensen av en katalog.
I det nevnte skriptet er “dir11” variabelen der du lagrer filen du finner; i dette eksemplet vil jeg sjekke katalognavnet “testDir” eksisterer eller ikke.
#!/ bin / bashdir11 = testDir
hvis [-d "$ dir11"]
deretter
ekko "Directory har funnet"
ellers
ekko "Katalog er ikke funnet"
fi
Produksjon:
2) Ved å skrive inn filnavnet i terminalen:
Når du kjører kommandoen i terminalen for å sjekke om katalogen eksisterer eller ikke, må du oppgi katalognavnet du søker etter:
ekko "skriv inn katalognavnet ditt."
les Dir1
hvis [-d "Dir1"]
deretter
ekko "katalog er funnet"
ellers
ekko "katalogen har ikke funnet"
fi
Produksjon:
Kontrollere filen uten å bruke "if" -uttalelsen:
"Test" -kommandoen kan utføres uten "if" -uttalelsen. Det vil bare vise utdata hvis filen eksisterer; Ellers ville det ikke være noe resultat:
Skriv manus:
- test -f myfile.txt && echo "filen er funnet"
- [-f myfil.txt] && echo "$ file er funnet."
- [[-f myfile.txt]] && echo "$ file er funnet."
Produksjon:
Kontrollere katalogen uten å bruke setningen "if":
Bruk utsagnene nedenfor for å sjekke at en katalog eksisterer eller ikke:
- [[-d testDir]] && echo "katalogen eksisterer"
- 2) [-d testDir] && echo "katalogen eksisterer"
Produksjon:
Kontrollere flere filer / kataloger:
1) Kontrollere flere filer med "if" -uttalelser:
Bruk “-a” -flagget for å kontrollere eksistensen av forskjellige filer i stedet for å bruke nestede “if / else” -uttalelser:
hvis [-f ny_fil.txt -a -f nyfil.tekst ]; deretter
ekko "Begge filene finnes."
fi
En annen måte er:
#!/ bin / bashhvis [[-f ny_fil.txt && -f nyfil.tekst ]]; deretter
ekko "Begge filene finnes."
fi
Produksjon:
2) Kontrollere flere filer uten å bruke setningen "if":
Bruk følgende påstand for å sjekke flere filer samtidig 1 uten å bruke “if”:
- [[-f ny_fil.txt && -f nyfil.txt]] && echo “Begge filene avsluttes.”
- [[-f ny_fil.txt && -f nyfil.txt]] && echo “Begge filene avsluttes.”
Produksjon:
Konklusjon:
Denne artikkelen har vist hvordan du bruker bash scripting for å sjekke en fil eller en katalog. Vi brukte forskjellige alternativer for å sjekke tilgjengeligheten av en fil. For det første bruker vi kommandoen “test” med forskjellige flagg. Da lærte vi bruken av "if", nestet "if-else", og uten "if" -uttalelsene for å sjekke filen eller katalogen. Vi så også over hvordan du sjekker flere filer eller kataloger.