Hvordan finne katalogen der et bash -skript er plassert fra skriptet

Hvordan finne katalogen der et bash -skript er plassert fra skriptet
Når du jobber med bash -skript, er det nyttig å kjenne skriptets plassering. Dette kan være spesielt nyttig når du jobber med relative filstier, eller når du prøver å utføre andre skript eller kommandoer fra skriptet. I denne artikkelen tar vi en titt på noen få forskjellige måter for å bestemme katalogen til et bash -skript fra selve skriptet.

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:

  • Pårørende vei: Relativ er den nåværende arbeidskatalogen.
  • Absolutt vei: Dette er den komplette banen til katalogen og filene.

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.