Hvordan finne katalogen der et bash -skript er plassert fra skriptet
Mens Bash Scripting kan du kreve plasseringen av skriptet for å automatisere forskjellige oppgaver. Det er to typer stier i Linux:
En av de vanligste måtene å bestemme plasseringen av et bash -skript er å bruke PWD kommando. De PWD kommando (Skriv ut arbeidskatalog) vil vise gjeldende katalog.
Så i mange situasjoner som bare bruker PWD Kommandoen fungerer ikke, da den bare gir banen til den arbeidskatalogen for øyeblikket.
For eksempel, hvis skriptet er i Nedlastinger katalog og bli utført fra Skrivebord da vil utgangen inneholde /Home/USR/Desktop ikke plasseringen av bash -skriptfilen som er /Hjem/usr/nedlastinger.
Denne opplæringen handler om å få banen til katalogen der bash -skriptfilen ligger fra skriptet.
Hvordan få katalogsti der bash -skriptfilen er lokalisert
En annen måte å bestemme katalogen til et bash -skript er å bruke dirname kommando. De dirname Kommandoen tar en filsti som et argument og returnerer katalogdelen av banen.
Å bruke dirname Kommando for å bestemme katalogen til et skript, vil du ringe kommandoen med banen til de siste ikke-slash-komponentene til skriptet som argument.
For mer informasjon om dirname Utfør følgende kommandoer i terminalen:
$ mann dirname
Bare dirname vil ikke fungere, vi trenger en annen kommando som er Readlink. De Readlink Kommandoutskrift Løst den symbolske lenken. Få mer informasjon om denne kommandoen ved å kjøre:
$ mann readlink
Nå, Lag et skript:
$ sudo nano myscript.sh
Og type:
#!/bin/bash
Echo "The Bash Script Path er $ (Dirname -" $ (Readlink -F - "$ 0") ";)";
Å kjøre skriptbruken:
$ Bash MyScript.sh
La oss endre katalogen og se hva som er utdata:
Merk: I ett tilfelle vil ikke skriptet ovenfor ikke fungere hvis filen er hentet i stedet for å utføre som den kan sees i følgende utgang:
Utgangen er /Hjem/Sam/Desktop mens skriptfilen er til stede i /Hjem/Sam katalog.
Konklusjon
Avslutningsvis er det flere måter å bestemme katalogen til et bash -skript fra selve skriptet. De dirname sammen med Readlink verktøy kan brukes til å bestemme katalogen til et skript. Imidlertid bare å bruke PWD Kommandoen fungerer ikke, da den bare gir den arbeidskatalogen for øyeblikket.