Fokus for denne guide er at diskutere eksistensen af en fil i dit system gennem bash scripting:
Sådan kontrolleres fileksistensen ved hjælp af bash-scripting:
1) Ved at indtaste filnavnet i terminalen:
For det første skal vi oprette en bash-scriptfil, brug nedenstående kommando:
$ touch testfil.shNavnet på den fil, jeg oprettede, er “testfile.sh ”,“.udvidelsen sh ”angiver shell-scriptfilen:
Åbn “testfilen.sh ”i enhver teksteditor. Skriv derefter scriptet, gem det ved at trykke på "gem".
En måde er at finde en fil ved at bede om et filnavn fra brugeren i terminalen.
Brug "-f”For at kontrollere filens eksistens.
Skriv nedenstående script:
#!/ bin / bashekko "Indtast dit filnavn"
læs nyfil1
hvis [-f "$ newfile1"]
derefter
ekko "Fil er fundet"
andet
ekko "Filen blev ikke fundet"
fi
Gå tilbage til terminalen og kør filen for at udskrive output:
./filnavn.shTilladelse nægtet meddelelse vises i terminalen.
Gør det eksekverbart ved at udføre nedenstående kommando:
$ chmod + x testfil.sh
Indtast filnavnet, og det vil udskrive output:
2) Ved at indtaste filnavnet mens du skriver scriptet:
En anden måde at finde en fil ved at give filnavnet, mens du skriver scriptet. Vi har tre måder at kontrollere tilgængeligheden af filen. Den første bruger kommandoen “test”, den anden bruger “hvis” med et udtryk i firkantede parenteser, og den tredje er også med “hvis” men dobbelte firkantede parenteser som angivet nedenfor:
- “Test EKSPRESSION.”
- “Hvis [EKSPRESSION]”
- "Hvis [[UDTRYK]]"
Lad os forstå det med eksempler:
1) test [udtryk]
Kopier det givne script, og indsæt det i editoren, gem det:
filnavn = fil1
hvis test -f "$ filnavn";
derefter
ekko "$ -fil har fundet."
andet
ekko "$ fil er ikke fundet"
fi
Produktion:
Da der ikke er nogen sådan fil i min mappe, viser koden derfor meddelelsen "File is not found".
2) hvis [udtryk]
Kopier følgende script for at kontrollere, om filen findes eller ej:
#!/ bin / bashfilnavn = myfil.txt
hvis [-f "$ filnavn"];
derefter
ekko "$ filnavn er fundet."
andet
ekko "filnavn er ikke fundet"
fi
Produktion:
3) hvis [[udtryk]]
Kopier nedenstående skriftlige script og indsæt det på terminalen:
#!/ bin / bashfilnavn = testfil
hvis [[-f "$ filnavn"]];
derefter
ekko "$ filnavn er fundet."
andet
ekko "$ filnavn er ikke fundet"
fi
Produktion:
For at kontrollere biblioteket:
3) Ved at indtaste katalognavnet, mens du skriver et script
Brug "-d”Flag for at kontrollere eksistensen af en mappe.
I nedenstående script er “dir11” variablen, hvor du gemmer filen, den du finder; i dette eksempel vil jeg kontrollere biblioteksnavnet “testDir” findes eller ikke.
#!/ bin / bashdir11 = testDir
hvis [-d "$ dir11"]
derefter
ekko "Directory har fundet"
andet
ekko "Directory er ikke fundet"
fi
Produktion:
2) Ved at indtaste filnavnet i terminalen:
Når du kører kommandoen i terminalen for at kontrollere, om kataloget findes eller ej, skal du indtaste det katalognavn, du søger efter:
ekko "skriv dit biblioteksnavn."
læs Dir1
hvis [-d "Dir1"]
derefter
ekko "katalog er fundet"
andet
ekko "biblioteket har ikke fundet"
fi
Produktion:
Kontrol af filen uden brug af "if" -sætningen:
Kommandoen “test” kan udføres uden “hvis” -sætningen. Det viser kun output, hvis filen findes; ellers ville der ikke være nogen output:
Skriv script:
- test -f myfile.txt && echo "filen er fundet"
- [-f myfil.txt] && echo "$ fil blev fundet."
- [[-f myfil.txt]] && echo "$ fil er fundet."
Produktion:
Kontrol af biblioteket uden brug af "if" -sætningen:
Brug nedenstående udsagn til at kontrollere, at der findes en mappe:
- [[-d testDir]] && echo "katalog findes"
- 2) [-d testDir] && echo "katalog findes"
Produktion:
Kontrol af flere filer / kataloger:
1) Kontrol af flere filer med "if" udsagn:
Brug “-a” flag til at kontrollere eksistensen af forskellige filer i stedet for at bruge indlejrede “if / else” udsagn:
hvis [-f ny_fil.txt -a -f ny fil.txt]; derefter
ekko "Begge filer findes."
fi
En anden måde er:
#!/ bin / bashhvis [[-f ny_fil.txt && -f nyfil.txt]]; derefter
ekko "Begge filer findes."
fi
Produktion:
2) Kontrol af flere filer uden brug af "if" -sætningen:
Brug følgende udsagn til at kontrollere flere filer samtidigt 1 uden at bruge “if”:
- [[-f ny_fil.txt && -f ny fil.txt]] && echo “Begge filer afsluttes.”
- [[-f ny_fil.txt && -f nyfil.txt]] && echo “Begge filer afsluttes.”
Produktion:
Konklusion:
Denne artikel har vist, hvordan man bruger bash-scripting til at kontrollere en fil eller et bibliotek. Vi brugte forskellige muligheder for at kontrollere tilgængeligheden af en fil. For det første bruger vi kommandoen “test” med forskellige flag. Derefter lærte vi brugen af "if", indlejret "if-else" og uden "if" -sætningerne for at kontrollere filen eller biblioteket. Vi kiggede også over, hvordan vi kontrollerer flere filer eller mapper.