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 dirnameCsak 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 readlinkMost, forgatókönyvet készíteni :
$ sudo nano myScript.shÉs írja be:
#!/bin/bashvisszhang '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.