Hogyan lehet megtalálni azt a könyvtárat, ahol a Bash szkript található a szkripten belül

Hogyan Lehet Megtalalni Azt A Konyvtarat Ahol A Bash Szkript Talalhato A Szkripten Belul



Amikor bash szkriptekkel dolgozik, hasznos tudnia a szkriptek helyét. Ez különösen akkor lehet hasznos, ha relatív fájlútvonalakkal dolgozik, vagy amikor más szkripteket vagy parancsokat próbál végrehajtani a szkripten belül. Ebben a cikkben megvizsgálunk néhány különböző módot a bash szkript könyvtárának meghatározására a szkripten belül.

Hogyan lehet megtalálni azt a könyvtárat, ahol a Bash szkript található a szkripten belül

A bash szkriptelés során előfordulhat, hogy a különböző feladatok automatizálásához meg kell adni a szkript helyét. A Linuxban kétféle útvonal létezik:

  • Rokonok útvonala: A relatív az aktuális munkakönyvtár.
  • Abszolút út: Ez a könyvtár és a fájlok teljes elérési útja.

A bash szkriptek helyének meghatározásának egyik leggyakoribb módja a pwd parancs. A pwd parancs ( nyomtatási munkakönyvtár) megjeleníti az aktuális könyvtárat.







Tehát sok helyzetben egyszerűen használva pwd parancs nem működik, mivel csak az aktuálisan működő könyvtár elérési útját adja meg.



Például, ha a szkript a Letöltések könyvtárat, és végrehajtásra kerül a Asztali akkor a kimenet tartalmazni fogja a /home/usr/Desktop nem a bash script fájl helye /home/usr/Letöltések .



Ez az oktatóanyag annak a könyvtárnak az elérési útját ismerteti, amelyben a bash szkriptfájl található a szkripten belül.





Hogyan lehet elérni a Bash Script fájl címtárának elérési útját

A Bash-szkript könyvtárának meghatározásának másik módja a dirname parancs. A dirname parancs a fájl elérési útját veszi argumentumként, és visszaadja az útvonal könyvtárrészét.

Használni dirname parancsot a szkript könyvtárának meghatározásához, akkor azt a parancsot kell meghívnia, amelynek argumentumaként a parancsfájl utolsó nem perjel összetevőjéig tartó elérési út található.



További részletekért a dirname hajtsa végre a következő parancsokat a terminálban:

$ Férfi dirname

Csak dirname nem fog működni, szükségünk van egy másik parancsra readlink . A readlink A print parancs megoldotta a szimbolikus hivatkozást. Erről a parancsról további információkat kaphat a következő futtatásával:

$ Férfi readlink

Most, forgatókönyvet készíteni :

$ sudo nano myScript.sh

És írja be:

#!/bin/bash

visszhang 'A bash szkript elérési útja az $(dirname -- '$(readlink -f - '$0') ' ; ) ';

A szkript futtatásához használja:

$ bash myScript.sh

Változtassuk meg a könyvtárat, és nézzük meg, mi a kimenet:

Jegyzet: Egy esetben a fenti szkript nem fog működni, ha a fájl forrásból származik a végrehajtás helyett, ahogy az a következő kimeneten látható:

A kimenet az /home/sam/Desktop míg a szkriptfájl jelen van a /home/sam Könyvtár.

Következtetés

Összefoglalva, többféle módon is meghatározható a bash szkript könyvtára a szkripten belül. A dirname együtt readlink segédprogram használható a szkript könyvtárának meghatározására. Azonban egyszerűen használva pwd parancs nem működik, mivel csak az éppen működő könyvtárat adja meg.